3

Telerik MVC Grid コントロールの使用に問題があります。新しい行が保存されるときに、コントロールが新しく保存された行 (行が時間通りにソートされるため、常に上に立つ) を展開する必要があります。

グリッドで次のコードを使用しました。

@(Html.Telerik()
  .Grid<Models.ViewModels.BestellingModel>()
  .Name("...")
  .DetailView(
       ...
  )
  .DataBinding(
      db =>
          {
              db.Ajax().Select(...);
              db.Ajax().Update(...);
              db.Ajax().Insert(...);
              db.Ajax().Delete(...);
          }
  )
  .DataKeys(
      ...
  )
  .ToolBar(
      ...
  )
  .ClientEvents(e =>
                    {
                        e.OnError("onErrorGrid");
                        e.OnSave("onSaveBestelling");
                        e.OnDataBound("bestellingenVanKlant_onRowDataBound");
                    }
  )
)

ここにJavaScriptがあります:

var isSaved = false;

function onSaveBestelling(e) {
    isSaved = true;
}

function bestellingenVanKlant_onRowDataBound(e) {
    if (isSaved) {
        var grid = $(this).data('tGrid');
        grid.expandRow(0);

        isSaved = false;
    }     
}

firebug を使用してコード パスを追跡すると、コードが実行されていることがわかります。ただし、私の見解では、新しい行を挿入した後、行は展開されません。

何かご意見は?

4

1 に答える 1

0

bestellingenVanKlant_onRowDataBound関数を変更する必要があると思います。

var grid = $(this).data('tGrid');
expandFirstRow(grid, e.row);

そして、expandFirstRow関数を使用します。

function expandFirstRow(grid, row) {
    if (grid.$rows().index(row) == 0) {
        grid.expandRow(row);
    }
}
于 2013-01-26T20:46:17.200 に答える