我已将MVC扩展升级到MVC Q3 2011(版本2011.3.1115.340)。我有一个使用ajax编辑内联模式的telerik网格。网格显示正确,但当我尝试编辑一行时,它给出了 Microsoft JScript运行时错误:'i.validator'为null或不是telerik.grid.editing.min.js文件中的对象。以下是我的代码:
<div id="addEditSelectionTable">
<% Html.Telerik().Grid(Model.InnerModel.SelectionsList)
.Name("Grid")
.ToolBar(commands => commands.Insert())
.DataKeys(keys => keys.Add(o => o.SelectionID))
.DataBinding(dataBinding =>
{
dataBinding.Ajax()
.Select("_SelectAjaxEditing", "Grid")
.Insert("_InsertAjaxEditing", "Grid")
.Update("_SaveAjaxEditing", "Grid")
.Delete("_DeleteAjaxEditing", "Grid");
})
.Columns(columns =>
{
columns.Bound(o => o.SelectionID);
columns.Bound(o => o.Enabled);
columns.Bound(o => o.SelectionType);
columns.Bound(o => o.Frequency);
columns.Command(commands =>
{
commands.Edit();
commands.Delete();
}).Width(200);
})
.Scrollable(s => s.Enabled(true))
.Scrollable(scrolling => scrolling.Height(500))
.Resizable(resize => resize.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.Footer(false)
.Render();
%>
</div>
我的控制器有GridAction:
[AcceptVerbs(HttpVerbs.Post)]
[GridAction]
public ActionResult _SaveAjaxEditing(int id)
{
var sModel = SamplesModel.GetAllSampleSelections();
return View(new GridModel(sModel.SelectionsList));
}
不知道为什么这可能会受到影响。网格工作正常,无需编辑。
答案 0 :(得分:0)
我有同样的问题。我的原因是我的可编辑网格在模态对话框上,我认为Telerik在对话框而不是普通页面上渲染网格时不会创建验证器对象。
我还在主页面上有一个不可编辑的网格来触发对话框。我所做的是将“可编辑(编辑=&gt; editing.Mode(GridEditMode.InLine)”属性附加到主网格以假装它是可编辑的(但不渲染任何命令按钮)。这样,子网格上该对话框将使用为主网格创建的验证器对象。
希望它有所帮助。