I am following this example to implement a grid.
http://demos.telerik.com/aspnet-ajax/grid/examples/hierarchy/autogeneratedhierarchy/defaultcs.aspx
My radgrid markup is below:
I have a drop down that changes the child level of the grid, where it be Assessment or Access. The problem I am running in to is that I allow the user to double click on a row in the child level, and then I will grab the dataKeyValue and launch an editor. I've tried putting these lines in the PreRender event, but it did not work.
switch (m_GridViewType)
{
case "Access":
RadGrid1.MasterTableView.DetailTables[0].Name = "Access";
RadGrid1.MasterTableView.DetailTables[0].DataKeyNames = new string[] { "rvlPropertyID", "rvlPropertyAccessID" };
RadGrid1.MasterTableView.DetailTables[0].ClientDataKeyNames = new string[] { "rvlPropertyID", "rvlPropertyAccessID" };
break;
case "Assessment":
RadGrid1.MasterTableView.DetailTables[0].Name = "Assessment";
RadGrid1.MasterTableView.DetailTables[0].DataKeyNames = new string[] { "rvlPropertyID", "rvlPropAssessmentID" };
RadGrid1.MasterTableView.DetailTables[0].ClientDataKeyNames = new string[] { "rvlPropertyID", "rvlPropAssessmentID" };
break;
case "Status":
RadGrid1.MasterTableView.DetailTables[0].Name = "Status";
RadGrid1.MasterTableView.DetailTables[0].DataKeyNames = new string[] { "rvlPropertyID", "rvlPropertyStatusID" };
RadGrid1.MasterTableView.DetailTables[0].ClientDataKeyNames = new string[] { "rvlPropertyID", "rvlPropertyStatusID" };
break;
case "Contact":
RadGrid1.MasterTableView.DetailTables[0].Name = "Contact";
RadGrid1.MasterTableView.DetailTables[0].DataKeyNames = new string[] { "rvlPropertyID", "cntContactID" };
RadGrid1.MasterTableView.DetailTables[0].ClientDataKeyNames = new string[] { "rvlPropertyID", "cntContactID" };
break;
case "Call":
RadGrid1.MasterTableView.DetailTables[0].Name = "Call";
RadGrid1.MasterTableView.DetailTables[0].DataKeyNames = new string[] { "rvlPropertyID", "clnCallinLogID" };
RadGrid1.MasterTableView.DetailTables[0].ClientDataKeyNames = new string[] { "rvlPropertyID", "clnCallinLogID" };
break;
}
But the javascript method never pulls the datakeyValue because it does not have the datakeynames
function RowDblClick(sender, eventArgs) {
var propid = eventArgs.getDataKeyValue("rvlPropertyID");
switch (document.getElementById('<%=cmbGridViews.ClientID %>').value) {
case "Access":
var childID = eventArgs.getDataKeyValue("RvlPropertyAccessID");
break;
case "Assessment":
var childID = eventArgs.getDataKeyValue("RvlPropAssessmentID");
break;
case "Status":
var childID = eventArgs.getDataKeyValue("RvlPropertyStatusID");
break;
case "Contact":
var childID = eventArgs.getDataKeyValue("CntContactID");
break;
case "Call":
var childID = eventArgs.getDataKeyValue("ClnCallinLogID");
break;
default:
break;
}
var targetCell = eventArgs.get_domEvent().target;
if (childID == undefined) {
if (targetCell.cellIndex == 1) // Property Name
window.radopen("Editors/PropertyEditor.aspx?propid=" + propid, "editWindow");
else if (targetCell.cellIndex == 7 && targetCell.innerHTML != "0") // photocounter and does not = 0
window.radopen(GetPhotoViewerURL() + "PhotoViewer.aspx?id=" + propid, "PhotoWindow");
}
else { // is child row
if (targetCell.cellIndex == 0) // Assessment date
window.radopen("Editors/PropertyAssessmentEditor.aspx?id=" + rvlAssessmentID, "editWindow");
else if (targetCell.cellIndex == 11 && targetCell.innerHTML != "0")
window.radopen(GetPhotoViewerURL() + "PhotoViewer.aspx?id=" + rvlAssessmentID, "PhotoWindow");
}
}