0

別のTelerikグリッド内にネストされたTelerikグリッドがあり、親グリッドが展開されるたびにグリッドを強制的に更新したいと思います。ネストされたグリッド内のデータは急激に変化する可能性があるため、展開イベントごとにネストされたグリッドが更新される必要があります。

私のテレリックグリッド:

<div>
@(Html.Telerik().Grid<RentableUnit>()
       .Name("RentableUnits")
       .Columns(columns =>
                    {
                        columns.Bound(e => e.UnitID).Hidden();
                        columns.Bound(e => e.Name).Width(800);
                        columns.Bound(e => e.IsExpanded).Hidden();
                    })
       .ClientEvents(events => events.OnRowDataBound("employees_onRowDataBound")
                                   .OnDetailViewExpand("unit_onDetailViewExpand")
                                   .OnDetailViewCollapse("unit_onDetailViewCollapse")
                                   .OnDetailViewExpand("toggleDetail")
                                   )
       .DetailView(details => details.ClientTemplate(
           //stuff in template
       )
.DataBinding(dataBinding => dataBinding.Ajax().Select("RentableUnits", "Home"))
.Sortable()
)
</div>

私のJavascript:

function unit_onDetailViewExpand(e) {
    var mstRow = e.masterRow;
    var unitNumber = mstRow.cells[1].innerHTML;
    var grid = $(this).data('tGrid');
    grid.$rows().not(e.masterRow).each(function(index, row) {
        grid.collapseRow(row);
    });   

    //I´ve been trying to force databinding on the grid row
    grid.expandRow(e.row);
    //I´ve been trying this among others but I´m missing something
}

グリッドローを強制的に再バインドする方法について、誰かが私を正しい方向に向けることができますか?どんな助けでも大歓迎です:)

4

2 に答える 2

1

このようにして、ページ上のすべてのグリッドを再バインドします。詳細行の内側にあるグリッドのみを更新するには、DetailExpand イベント内で次のロジックを使用して、クライアント オブジェクトを取得するグリッドを見つけ、ajaxRequestメソッドを使用します。

function unit_onDetailViewExpand(e){
    $(e.detailRow).find('.t-grid').data().tGrid.ajaxRequest();
}
于 2012-11-14T19:53:29.407 に答える
0

この質問を投稿した直後に、私はすぐに話しました(奇妙な理由で)答えが私を襲いました。私はこのループでグリッドの更新を強制することができました:

        for (var i = 0; i < 6; i++) {
        $('#' + i + 'UnitPeriod_' + unitNumber + ' .t-refresh').trigger('click');
    }

この行grid.expandRow(e.row)を上記のループに置き換えました。とにかくありがとう:)

于 2012-11-13T10:40:54.540 に答える