RadPanelBar for ASP.NET

Server-side events Send comments on this topic.
See Also
Telerik RadPanelBar server-side > Server-side events

Glossary Item Box

Telerik RadPanelBar provides three server-side events - ItemClick, ItemCreated and ItemDataBound.

 

ItemClick

The server-side ItemClick event is fired after a panelbar postback. The instance of the clicked item is passed to the ItemClick event handler - you can obtain a reference to it using the RadpanelbarEventArgs.

C# Copy Code
protected void RadPanelBar1_ItemClick(object sender, RadPanelBarEventArgs e)
{
   Telerik.WebControls.RadPanelItem ItemClicked = e.Item;
   Response.Write(
"Server event raised -- you clicked: " + ItemClicked.Text);
}
VB.NET Copy Code
Protected Sub RadPanel1_ItemClick(ByVal sender As Object, ByVal e As Telerik.WebControls.RadPanelBarEventArgs)
Handles RadPanelBar1.ItemClick
         Dim ItemClicked As Telerik.WebControls.RadPanelItem = e.Item
        Response.Write( "Server event raised -- you clicked: " + ItemClicked.Text)
End Sub

ItemCreated

ItemCreated is fired every time a new item is added to the RadPanelBar instance. ItemCreated is not related to databinding and you cannot retrieve the DataItem of the item in the ItemCreated event handler. ItemCreated is often useful in scenarios where you want to initialize all items- for example setting the ToolTip of each item to be equal to the Text property.

 

C# Copy Code
protected void RadPanelBar1_ItemCreated(object sender, RadPanelBarEventArgs e)
{
   Response.Write(
"This item was just added to the panelbar: " + e.Item.Text + "<br>");
}
VB
VB.NET Copy Code
Protected Sub RadPanelBar1_ItemCreated(ByVal sender As Object, ByVal e As Telerik.WebControls.RadPanelBarEventArgs)
 Handles RadPanelBar1.ItemCreated
        Response.Write( "This item was just added to the panelbar: " + e.Item.Text + "<br>")
 End Sub

ItemDataBound

ItamDataBound is fired for each item whenever you are databinding the Telerik RadPanelBar (setting a DataSource and calling DataBind() explicitly or using declarative databinding through DataSourceID in ASP.NET 2.0). You can retrieve the item being bound using the RadpanelbarEventArgs. The DataItem associated with the item can be retrieved with e.DataItem property. You need to cast the DataItem to the type of the datasource item you are binding to and then map fields from the DataItem to their respective properties in the RadPanelItem class.  

 

C# Copy Code
private DataTable CreateTestTable()
{
   DataTable table =
new DataTable();
   table.Columns.Add(
"ID");
   table.Columns.Add(
"ParentID");
   table.Columns.Add(
"Text");
   table.Rows.Add(
new object[] { "1", null, "Root 1" });
   table.Rows.Add(
new object[] { "2", null, "Root 2" });
   table.Rows.Add(
new object[] { "a", 1, "Child 1.1" });
   table.Rows.Add(
new object[] { "aa", 1, "Child 1.2" });
   table.Rows.Add(
new object[] { "b", "2", "Child 2.1" });
   table.Rows.Add(
new object[] { "bb", "2", "Child 2.2" });
   
return table;
}
protected void Page_Load(object sender, EventArgs e)
{
   RadPanelBar1.DataSource = CreateTestTable();
   RadPanelBar1.DataFieldID =
"ID";
   RadPanelBar1.DataFieldParentID =
"ParentID";
   RadPanelBar1.DataBind();
}

protected void RadPanelBar1_ItemDataBound(object sender, RadPanelBarEventArgs e)
{
   DataRowView row = (DataRowView)e.Item.DataItem;
   e.Item.Text = row[
"Text"].ToString();
}
VB.NET Copy Code
Private Function CreateTestTable() As DataTable
    Dim table As New DataTable()
    table.Columns.Add("ID")
    table.Columns.Add("ParentID")
    table.Columns.Add("Text")
    table.Rows.Add(New Object() {"1", Nothing, "Root 1"})
    table.Rows.Add(New Object() {"2", Nothing, "Root 2"})
    table.Rows.Add(New Object() {"a", 1, "Child 1.1"})
    table.Rows.Add(New Object() {"aa", 1, "Child 1.2"})
    table.Rows.Add(New Object() {"b", "2", "Child 2.1"})
    table.Rows.Add(New Object() {"bb", "2", "Child 2.2"})
    Return table
End Function 'CreateTestTable
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    RadPanelBar1.DataSource = CreateTestTable()
    RadPanelBar1.DataFieldID = "ID"
    RadPanelBar1.DataFieldParentID = "ParentID"
    RadPanelBar1.DataBind()
End Sub
Protected Sub RadPanelBar1_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.WebControls.RadPanelBarEventArgs) Handles RadPanelBar1.ItemDataBound
    Dim row As DataRowView = CType(e.Item.DataItem, DataRowView)
    e.Item.Text = row("Text").ToString()
End Sub

See Also