I have a master detail grid. For the master grid, I use NeedDataSource. In addtion, on the ItemDatabound event, I modify some of the columns (ex. I hide some of the command buttons for some rows).
When a row is expanded and DetailTableDataBind is fired, the detail table renders fine. However, the modifications made to the parent table above via ItemDatabound are lost. It is as if I need to rebind my parent table. Have been unable to do that, though without losing my detail table view.
I posted the relevant code below. Any help would be greatly appreciated. Thanks, Rick
When a row is expanded and DetailTableDataBind is fired, the detail table renders fine. However, the modifications made to the parent table above via ItemDatabound are lost. It is as if I need to rebind my parent table. Have been unable to do that, though without losing my detail table view.
I posted the relevant code below. Any help would be greatly appreciated. Thanks, Rick
void afterGrid_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e){ var dataItem = e.DetailTableView.ParentItem; var memberId = dataItem.GetDataKeyValue("Id").ToString().ToInteger(); using (var db = new DataContext()) { var toBind = //retrieves the data e.DetailTableView.DataSource = toBind; }}void afterGrid_ItemDataBound(object sender, GridItemEventArgs e){ //Answers is name of detail data if (e.Item is GridDataItem && e.Item.OwnerTableView.Name != "Answers") { var item = (GridDataItem)e.Item; var cell = item["Remind"]; if (cell.IsNotNull()) { //dont send if already submitted var data = (ReviewMember)item.DataItem; if (data.SubmitDate.HasValue) { cell.Controls.Clear(); } else if (data.LastSavedDate.HasValue ) { cell.Controls.Clear(); cell.Text = "Sent"; } } } else if (e.Item is GridDataItem && e.Item.OwnerTableView.Name == "Answers") { var item = (GridDataItem)e.Item; var data = (MemberResult)item.DataItem; var cell = item["Attach"]; if (data.Question.Type != QuestionTypes.Upload) { cell.Controls.Clear(); } }}void afterGrid_ItemCommand(object sender, GridCommandEventArgs e){ if (e.CommandName.Equals("Remind")) { //do some work afterGrid.Rebind(); } else if (e.CommandName == RadGrid.ExpandCollapseCommandName) { foreach (GridItem item in e.Item.OwnerTableView.Items) { if (item.Expanded && item != e.Item) { item.Expanded = false; } } }}