我在使用Telerik MVC网格控件时遇到问题。我希望控件在保存新行时展开新保存的行(它始终位于顶部,因为行按时排序)。
我在网格中使用了以下代码:
@(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跟踪代码路径时,它显示代码正在执行。但是,在我看来,插入新行后该行不会展开。
有什么想法吗?
答案 0 :(得分: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);
}
}