2

我的 aspx 页面上有两个 radgrids:Log 和 LogDetails。

当我单击日志网格上的一行时,我希望 LogDetails 使用 LogGrid 的 logid 刷新。但细节网格并不令人耳目一新。

请帮我。这是我的代码。谢谢

     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();
    }
4

1 回答 1

2

为了LogId更好地将值传递给详细信息网格,请使用DataKeyNamesMasterTableView 的属性来设置唯一标识符属性名称和SelectedValue主 RadGrid 的属性,以在代码隐藏中获取它的值。查看此演示:网格/主/详细网格

当您使用高级数据绑定时,您可以访问主网格的 SelectedValue 属性,只是在详细的网格 NeedDataSource 事件处理程序中,而无需处理ItemCommand主网格的事件。

于 2012-06-07T20:01:52.123 回答