I assign static images to RadMenuItems via the ImageUrl property, and now would like to use image sprites instead.
Because I could not find a way to do this, I next tried to configure each RadMenuItem by setting the Text value " " and a CssClass with an appropriate background image in the code behind Page_Load. But I would like to change the class on the client side, and cannot figure out how to do that. Besides, this seems like a pretty messy kludge.
What is the recommended way forward?
Resources
Current functioning RadMenu can be found in the upper right corner of this site: https://an.rsl.wustl.edu/msl/mslbrowser -- It's the Account / Cart / Help menu.
Here is what I was trying with the CssClass approach. The RadMenu declaration on the client side:
<
div
>
<
telerik:RadAjaxManager
runat
=
"server"
ID
=
"ram"
></
telerik:RadAjaxManager
>
<
telerik:RadScriptManager
runat
=
"server"
ID
=
"rsm"
></
telerik:RadScriptManager
>
<
asp:PlaceHolder
runat
=
"server"
ID
=
"phTop"
></
asp:PlaceHolder
>
<
br
/>
<
asp:Button
runat
=
"server"
ID
=
"bTest"
Text
=
"Test"
OnClick
=
"bTest_Click"
/>
<
br
/>
<
telerik:RadButton
runat
=
"server"
ID
=
"rbTest2"
OnClientClicked
=
"setCartIconFull"
AutoPostBack
=
"False"
></
telerik:RadButton
>
<
asp:PlaceHolder
runat
=
"server"
ID
=
"phBottom"
></
asp:PlaceHolder
>
<
telerik:RadSkinManager
ID
=
"RadSkinManager1"
runat
=
"server"
ShowChooser
=
"true"
/>
<
telerik:RadTabStrip
runat
=
"server"
ID
=
"rts"
>
<
Tabs
>
<
telerik:RadTab
runat
=
"server"
Text
=
"Mission"
Value
=
"rtMiss"
></
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text="<span
class
=
'i-s-nav-n-s16Sol vaMid'
></
span
> Sol" Selected="True"></
telerik:RadTab
>
<
telerik:RadTab
runat
=
"server"
Text="<span
class
=
'i-s-nav-n-s16maps vaMid'
></
span
> Maps"></
telerik:RadTab
>
</
Tabs
>
</
telerik:RadTabStrip
>
<
asp:Label
runat
=
"server"
ID
=
"l1"
CssClass
=
"is-nav-16-CC"
></
asp:Label
>
<
asp:Label
runat
=
"server"
ID
=
"l2"
CssClass
=
"is-nav-16-CCw"
></
asp:Label
>
<
asp:Label
runat
=
"server"
ID
=
"l3"
></
asp:Label
>
<
span
class
=
"is-nav-16-CC"
style
=
"height: 16px; width: 16px;"
></
span
>
</
div
>
<
img
src
=
"i/n/s16null.png"
/>
<
asp:ImageButton
runat
=
"server"
ID
=
"ibTest"
CssClass
=
"is-nav-32-cartMenuEmpty"
Width
=
"70"
Height
=
"32"
/>
<
div
>
<
telerik:RadMenu
runat
=
"server"
ID
=
"rmTest"
ClickToOpen
=
"True"
Height
=
"40"
Width
=
"505"
EnableShadows
=
"True"
Style
=
"z-index: 2900"
>
<
Items
>
<
telerik:RadMenuItem
runat
=
"server"
Value
=
"rmiBarAccount"
>
<
GroupSettings
OffsetX
=
"0"
OffsetY
=
"4"
></
GroupSettings
>
<
Items
>
</
Items
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
runat
=
"server"
Value
=
"rmiBarHelp"
Text
=
" "
>
<
GroupSettings
OffsetX
=
"0"
OffsetY
=
"4"
></
GroupSettings
>
<
Items
>
</
Items
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
runat
=
"server"
Value
=
"rmiBarCart"
Text
=
" "
>
<
GroupSettings
OffsetX
=
"0"
OffsetY
=
"4"
></
GroupSettings
>
<
Items
>
</
Items
>
</
telerik:RadMenuItem
>
<
telerik:RadMenuItem
runat
=
"server"
Value
=
"rmiBarNon"
Text
=
" "
>
<
GroupSettings
OffsetX
=
"0"
OffsetY
=
"4"
></
GroupSettings
>
<
Items
>
</
Items
>
</
telerik:RadMenuItem
>
</
Items
>
</
telerik:RadMenu
>
</
div
>
The code behind configuration:​
RadMenuItem rmiAcct = rmTest.FindItemByValue(
"rmiBarAccount"
);
rmiAcct.Text =
" "
;
rmiAcct.CssClass =
"is-nav-32-accountMenuSignedOut-rmi"
;
RadMenuItem rmiCart = rmTest.FindItemByValue(
"rmiBarCart"
);
rmiCart.Text =
" "
;
rmiCart.CssClass =
"is-nav-32-cartMenuEmpty-rmi"
;
RadMenuItem rmiHelp = rmTest.FindItemByValue(
"rmiBarHelp"
);
rmiHelp.Text =
" "
;
rmiHelp.CssClass =
"is-nav-32-ucMenuHelp-rmi"
;
My CSS classes (using sprites):
.is-nav
-32
-accountMenuSignedIn-rmi .rmText {
width
:
128px
;
height
:
32px
;
background
:
url
(
'../i/s/_nav32Sprite.png'
)
-1px
-1px
;
width
:
112px
/* correct for goofy RadMenu*/
height
:
31px
;
/* correct for goofy RadMenu*/
}
.is-nav
-32
-accountMenuSignedOut-rmi .rmText {
width
:
128px
;
height
:
32px
;
background
:
url
(
'../i/s/_nav32Sprite.png'
)
-130px
-1px
;
width
:
112px
;
/* correct for goofy RadMenu*/
height
:
31px
;
/* correct for goofy RadMenu*/
}
.is-nav
-32
-cartMenuEmpty-rmi .rmText {
width
:
70px
;
height
:
32px
;
background
:
url
(
'../i/s/_nav32Sprite.png'
)
-325px
-1px
;
width
:
54px
;
/* correct for goofy RadMenu*/
height
:
31px
;
/* correct for goofy RadMenu*/
}
.is-nav
-32
-cartMenuFull-rmi .rmText {
width
:
70px
;
height
:
32px
;
background
:
url
(
'../i/s/_nav32Sprite.png'
)
-396px
-1px
;
width
:
54px
;
/* correct for goofy RadMenu*/
height
:
31px
;
/* correct for goofy RadMenu*/
}
.is-nav
-32
-ucMenuHelp-rmi .rmText {
width
:
55px
;
height
:
32px
;
background
:
url
(
'../i/s/_nav32Sprite.png'
)
-1554px
-1px
;
width
:
39px
;
/* correct for goofy RadMenu*/
height
:
31px
;
/* correct for goofy RadMenu*/
}
div.RadMenu .rmLink {
padding
:
0
;
}
The sprite image is attached.