我们最近下载了一个试用版的Kendo UI套件,以便在试用期结束时进行购买。我们在Ajax绑定模式下使用Kendo网格控件,并注意到一些问题。主要问题是删除绑定到网格的模型中的最后一条记录时发生以下脚本错误:
http:// * * /Scripts/kendo/2012.3.1114/kendo.web.js第18行第31059行未处理的异常 0x800a138f - Microsoft JScript运行时错误:'_ current'为null或不是对象
我们无法在Chrome中复制此内容。我们对Kendo感兴趣,因为它与IE8兼容。情况似乎并非如此。
这是我们的.cshtml文件中的网格:
@(Html.Kendo().Grid(Model)
.Name("UserGrid")
.HtmlAttributes(new { style = "height:500px" })
.Columns(columns =>
{
columns.Bound(p => p.ReferenceNumber).Groupable(false);
columns.Bound(p => p.Title).Title("Title");
columns.Bound(p => p.AgreementDate).Title("Agreement Date");
columns.Bound(p => p.Superseded).ClientTemplate(
"<input type='checkbox' disabled='disabled' value='#= Superseded #' " +
"# if (Superseded) { #" +
"checked='checked'" +
"# } #" +
"/>");
//columns.Bound(p => p.Parties.Count);
columns.Bound(p => p.SourceDocumentLink);
columns.Bound(p => p.RelationshipLeadDirector);
columns.Bound(p => p.Owner);
columns.Bound(p => p.LegalContact);
columns.Command(command => command.Destroy()).Width(100);
columns.Template(@<text></text>).ClientTemplate("<a class='k-button k-button-icontext k-edit-button' href='" + Url.Action("Update", "Agreement") + "/#=Id#'><span class='k-icon k-edit'></span>Edit</a>");
})
.DataSource(dataSource => dataSource
.Ajax()
//.Server()
//.Events(events => events.RequestStart("requeststart_handler"))
//.Events(events => events.Error("error_handler"))
.Model(model => model.Id(p => p.Id))
.Destroy("Delete", "Agreement")
.Update("Update","Agreement")
.Read(read => read.Action("ListAgreements", "Agreement")
))
.Navigatable()
.Scrollable()
.Resizable(s=>s.Columns(true))
.Selectable(selectable => selectable.Mode(GridSelectionMode.Single))
.Sortable()
.Pageable(builder => builder.PageSizes(true))
)
以下是我们的控制器上负责删除的操作:
[HttpAjaxPost]
public JsonResult Delete([DataSourceRequest] DataSourceRequest request, AgreementData agreement)
{
try
{
_agreementService.DeleteAgreement(agreement);
ModelState.Clear();
}
catch (Exception ex)
{
Logger.GetLog(Logger.ServiceLog).Error(ex);
ModelState.AddModelError("errors", "Delete failed");
}
return Json(ModelState.ToDataSourceResult());
}
这是Kendo网格的错误还是我们错过了一些明显的东西?回顾一下......只有在删除网格中的最后一条记录时才会出现脚本错误。
答案 0 :(得分:0)
好的,我刚刚在Tekerik论坛上找到了这个:
看起来它是当前发布的Kendo版本(2012.3.1114)的错误。显然,它已在最新的内部版本中修复。