我的aspx页面上有两个radgrids:Log和LogDetails。
当我点击日志网格上的一行时,我希望使用LogGrid的logid刷新LogDetails。但细节网格并不令人耳目一新。
请帮帮我。这是我的代码。感谢
protected void OnLogGridNeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
var logs = LogManager.FindLog();
var sortedlogs = from l in logs
orderby l.LogId descending
select l;
grdLogGrid.DataSource = sortedlogs;
}
protected void OnLogDetailGridNeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
int logid = 0;
if (grdLogGrid.SelectedValue != null)
logid = Convert.ToInt32(grdLogGrid.SelectedValue.ToString());
var logDetails = LogManager.FindLogDetail();
var logDetail = from ld in logDetails
where ld.LogId == logid
select ld;
grdLogDetailGrid.DataSource = logDetail;
}
protected void OnLogGridItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
grdLogDetailGrid.Rebind();
}
答案 0 :(得分:2)
更好地将LogId
值传递给详细信息网格,以便使用MasterTableView的DataKeyNames
属性来设置主RadGrid的唯一标识符属性名称和SelectedValue
属性,以便在代码隐藏中获取它的值。查看此演示:Grid / Master/Detail Grids
当您使用高级数据绑定时,您可以在详细信息的网格NeedDataSource事件处理程序中访问主网格的SelectedValue属性,而无需处理主网格的ItemCommand
事件。