未捕获的TypeError:无法在Grid中读取未定义的属性’replace’
我是使用Kendo Grid和Kendo UI的新手。 我的问题是如何解决此错误
Uncaught TypeError: Cannot read property 'replace' of undefined
这是我在KendoGrid上的代码
$("#Grid").kendoGrid({ scrollable: false, sortable: true, pageable: { refresh: true, pageSizes: true }, dataSource: { transport: { read: { url: '/Info/InfoList?search=' + search, dataType: "json", type: "POST" } }, pageSize: 10 }, rowTemplate: kendo.template($("#rowTemplate").html().replace('k-alt', '')), altRowTemplate: kendo.template($("#rowTemplate").html()) });
导致错误的行
rowTemplate: kendo.template($("#rowTemplate").html().replace('k-alt', '')),
rowTemplate的HTML
${ FirstName } ${ LastName }
谢谢 :)
我认为jQuery无法找到该元素。
首先找到元素
var rowTemplate= document.getElementsByName("rowTemplate");
要么
var rowTemplate = document.getElementById("rowTemplate");
要么
var rowTemplate = $('#rowTemplate');
然后再次尝试您的代码
rowTemplate.html().replace(....)
请尝试使用以下代码段。
Test
我用不同的方式实现了同样的事情。
可能是因为属性pageable -> pageSizes: true
。
删除它并再次检查。
在我的情况下,我使用的视图已转换为部分视图,我忘记从“@section脚本”中删除模板。 删除部分块,解决了我的问题。 这是因为这些部分没有在部分视图中呈现。
在模型中定义id很重要
.DataSource(dataSource => dataSource .Ajax() .PageSize(20) .Model(model => model.Id(p => p.id)) )