【问题标题】:Telerik MVC Ajax Grid won't expand on saveTelerik MVC Ajax Grid 不会扩展保存
【发布时间】:2013-01-10 08:39:07
【问题描述】:

我在使用 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 跟踪代码路径时,它显示代码正在执行。但是,在我看来,插入新行后该行不会扩展。

有什么想法吗?

【问题讨论】:

    标签: c# jquery asp.net-mvc telerik-grid telerik-mvc


    【解决方案1】:

    我认为你必须改变你的 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);
        }
    }
    

    【讨论】:

    • 这并不能修复错误。通过尝试将 e.row 传递给另一个函数,我确实发现 e.row 是一个未定义的变量。这对我来说似乎很奇怪,因为事件应该包含一个行值。
    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 2012-12-07
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多