2

aspxページにLogとLogDetailsの2つのradgridがあります。

ロググリッドの行をクリックすると、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詳細グリッドに値を渡すにはDataKeyNames、MasterTableView のプロパティを使用して一意の識別子のプロパティ名を設定SelectedValueし、マスター RadGrid のプロパティを設定してコード ビハインドでその値を取得することをお勧めします。このデモを確認してください: Grid / Master/Detail Grids

高度なデータ バインディングを使用すると、マスター グリッドのイベントを処理せずに、詳細のグリッド NeedDataSource イベント ハンドラーでマスター グリッドの SelectedValue プロパティにアクセスできますItemCommand

于 2012-06-07T20:01:52.123 に答える