Product Bundles
DevCraft
All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:
Web
Mobile
Document Management
Desktop
Reporting
Testing & Mocking
CMS
UI/UX Tools
Debugging
Free Tools
Support and Learning
Productivity and Design Tools
Hi Priyanka,
Please ensure the ListBox has the AutoPostBack set to true, to trigger the SelectedIndexChanged event:
<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" Width="800px" OnNeedDataSource="RadGrid1_NeedDataSource" OnDetailTableDataBind="RadGrid1_DetailTableDataBind"> <MasterTableView Name="Orders" AutoGenerateColumns="False" DataKeyNames="OrderID"> <Columns> <telerik:GridNumericColumn DataField="OrderID" DataType="System.Int32" FilterControlAltText="Filter OrderID column" HeaderText="OrderID" ReadOnly="True" SortExpression="OrderID" UniqueName="OrderID"> </telerik:GridNumericColumn> </Columns> <DetailTables> <telerik:GridTableView Name="OrderDetails" AutoGenerateColumns="false"> <Columns> <telerik:GridNumericColumn DataField="OrderID" DataType="System.Int32" FilterControlAltText="Filter OrderID column" HeaderText="OrderID" ReadOnly="True" SortExpression="OrderID" UniqueName="OrderID"> </telerik:GridNumericColumn> <telerik:GridTemplateColumn> <ItemTemplate> <telerik:RadListBox runat="server" ID="RadListBoxInGrid" OnSelectedIndexChanged="RadListBoxInGrid_SelectedIndexChanged" AutoPostBack="true"> <Items> <telerik:RadListBoxItem Text="Item 1" /> <telerik:RadListBoxItem Text="Item 2" /> <telerik:RadListBoxItem Text="Item 3" /> <telerik:RadListBoxItem Text="Item 4" /> </Items> </telerik:RadListBox> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </telerik:GridTableView> </DetailTables> </MasterTableView> </telerik:RadGrid> <telerik:RadListBox runat="server" ID="RadListBox1" OnSelectedIndexChanged="RadListBox1_SelectedIndexChanged" AutoPostBack="true"> <Items> <telerik:RadListBoxItem Text="Item 1" /> <telerik:RadListBoxItem Text="Item 2" /> <telerik:RadListBoxItem Text="Item 3" /> <telerik:RadListBoxItem Text="Item 4" /> </Items> </telerik:RadListBox>
protected void RadListBox1_SelectedIndexChanged(object sender, EventArgs e) { int index = RadListBox1.SelectedIndex; } protected void RadListBoxInGrid_SelectedIndexChanged(object sender, EventArgs e) { int index = RadListBox1.SelectedIndex; } protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { (sender as RadGrid).DataSource = OrdersTable(); } protected void RadGrid1_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e) { if (e.DetailTableView.Name == "OrderDetails") { GridDataItem parentItem = e.DetailTableView.ParentItem; int orderId = (int)parentItem.GetDataKeyValue("OrderID"); e.DetailTableView.DataSource = OrderDetailsTable().Select(string.Format("OrderID = '{0}'", orderId)); } } private DataTable OrdersTable() { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("OrderID", typeof(int))); dt.PrimaryKey = new DataColumn[] { dt.Columns["OrderID"] }; for (int i = 0; i < 3; i++) { int index = i + 1; DataRow row = dt.NewRow(); row["OrderID"] = index; dt.Rows.Add(row); } return dt; } private DataTable OrderDetailsTable() { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("OrderID", typeof(int))); var orders = OrdersTable(); int itemsPerOrder = 4; for (int rowIndex = 0; rowIndex < orders.Rows.Count; rowIndex++) { DataRow currentOrder = orders.Rows[rowIndex]; for (int j = 0; j < itemsPerOrder; j++) { int index = j + 1; DataRow row = dt.NewRow(); row["OrderID"] = currentOrder["OrderID"]; dt.Rows.Add(row); } } return dt; }
Regards, Vasko Progress Telerik