New to Telerik UI for ASP.NET AJAX? Start a free 30-day trial
Databinding with Custom Attributes
When binding the Telerik RadMenu to data, custom attributes can be set in the ItemDataBound event.
Here is an example:
ASP.NET
<telerik:RadMenu RenderMode="Lightweight" ID="RadMenu1" runat="server" OnItemDataBound="RadMenu1_ItemDataBound">
</telerik:RadMenu>
C#
protected void Page_Load(object sender, EventArgs e){
//dynamically crate a table to populate the menu
DataTable table1 = new DataTable();
table1.Columns.Add("ID");
table1.Columns.Add("ParentID");
table1.Columns.Add("Roles");
// the column for the custom attributes
table1.Columns.Add("Text");
table1.Rows.Add(new string[] { "1", null, "1", "Politics" });
table1.Rows.Add(new string[] { "2", null, "1", "Sports" });
table1.Rows.Add(new string[] { "3", null, "3", "Events" });
table1.Rows.Add(new string[] { "4", "1", "4", "CNN" });
table1.Rows.Add(new string[] { "5", "1", "5", "NBC" });
table1.Rows.Add(new string[] { "6", "1", "6", "ABC" });
table1.Rows.Add(new string[] { "7", "2", "7", "US Sports" });
table1.Rows.Add(new string[] { "8", "2", "2", "European Sports" });
table1.Rows.Add(new string[] { "9", "7", "4", "Baseball" });
table1.Rows.Add(new string[] { "10", "7", "3", "Football" });
table1.Rows.Add(new string[] { "11", "7", "2", "Basketball" });
table1.Rows.Add(new string[] { "12", "8", "4", "Soccer" });
table1.Rows.Add(new string[] { "14", "3", "5", "Oscar Awards" });
table1.Rows.Add(new string[] { "15", "3", "2", "MTV Movie Awards" });
RadMenu1.DataSource = table1;
RadMenu1.DataFieldID = "ID";
RadMenu1.DataFieldParentID = "ParentID";
RadMenu1.DataTextField = "Text";
RadMenu1.DataBind();
}
protected void RadMenu1_ItemDataBound(object sender, Telerik.Web.UI.RadMenuEventArgs e)
{
DataRowView dataRow = (DataRowView)e.Item.DataItem;
e.Item.Attributes["Roles"] = dataRow["Roles"].ToString();
e.Item.ToolTip = e.Item.Attributes["Roles"];
//we set the Tooltip just for testing purposes
}