or
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <script type="text/javascript"> function OnClientItemPopulatingHandler(sender, e) { var context = e.get_context(); //using jQuery to get the checked item and pass it to the server context["ProductSuite"] = $telerik.$("input[name='rblSuites']:checked").val(); } function OnClientItemPopulatedHandler(sender, e) { var items = e.get_item().get_items(); for (var i = 0; i < items.get_count(); i++) { var item = items.getItem(i); //getting the attribute of the item var myCustomAttribute = item.get_attributes().getAttribute("MyCustomAttribute"); //do something with the attribute } }</script></head><body> <form id="form1" runat="server"> <div> <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <asp:RadioButtonList ID="rblSuites" runat="server"> <asp:ListItem Selected="True">ASP.NET AJAX</asp:ListItem> <asp:ListItem>WPF</asp:ListItem> <asp:ListItem>Silverlight</asp:ListItem> <asp:ListItem>Winforms</asp:ListItem> </asp:RadioButtonList> <telerik:RadMenu ID="RadMenu1" OnClientItemPopulating="OnClientItemPopulatingHandler" OnClientItemPopulated="OnClientItemPopulatedHandler" runat="server"> <Items> <telerik:RadMenuItem Text="Products" ExpandMode="WebService"> </telerik:RadMenuItem> </Items> <WebServiceSettings Method="GetData" Path="../Services/WcfTopMenu.svc" /> </telerik:RadMenu> </div> </form></body></html><%@ ServiceHost Language="VB" Debug="true" Service="WcfTopMenu" CodeBehind="~/App_Code/WcfTopMenu.vb" %>Imports System.ServiceModelImports System.ServiceModel.ActivationImports System.ServiceModel.WebImports Telerik.Web.UI<ServiceContract([Namespace]:="")> _<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _Public Class WcfTopMenu <OperationContract()> _ Public Function GetData(ByVal item As RadMenuItemData, ByVal context As IDictionary(Of String, Object)) As RadMenuItemData() Dim items As New List(Of RadMenuItemData)() 'use the context to get the selected radio button Dim productsSuite As String = context("ProductSuite").ToString() 'the datasource 'Dim radControls() As String = New String() {"RadMenu", "RadMenu", "RadTreeView", "RadToolBar"} Dim radControls As List(Of [String]) = New List(Of String)() From { _ "RadMenu", _ "RadMenu", _ "RadTreeView", _ "RadToolBar" _ } For Each radControl As String In radControls 'Optional: set the attribute of the item which will be used 'in the OnClientNodePopulated event Dim newItem As New RadMenuItemData() With { _ .Text = String.Format("{0} for {1}", radControl, productsSuite), _ .Value = radControl, _ .ImageUrl = "Images/" + radControl + ".gif", _ .Attributes = New Dictionary(Of String, Object)() From {{"MyCustomAttribute", radControl}} } items.Add(newItem) Next Return items.ToArray() End FunctionEnd Class