我正在尝试对剑道网格中的事件进行回调。我的同事已经开始使用 MVC 助手创建网格。所以我试图像这样绑定到网格:
Html.Kendo().Grid<DetailViewModel>()
.Name("details")
.Events(events => events.DataBound(@<text>function () {
$('input:checkbox.details-checkbox').click(function () {
console.log("checked");
handleChecked();
});
}</text>))
所以查看文档,我不知道为什么我必须在这里使用@标签。我以为我可以输入回调的名称,例如“handleChecked”。但这对我不起作用。所以我把它包装在@标签中。因此,按照当前的设置方式,它确实将“已检查”文本发送到控制台。但是,我实际上希望在选中复选框时调用一个方法。我宁愿不必把它放在那个功能块中,因为它会变得一团糟。所以我尝试做的是准备好文档,定义handleChecked。看起来像:
@{
Html.Telerik().ScriptRegistrar()
.Scripts(wa => wa.AddSharedGroup(@Url.AssetName(AssetGroups.SinglePageApps)))
.OnDocumentReady(
@<text>
$(document).ready(function () {
function handleChecked() {
console.log("handle checked");
}
console.log("document.ready");
});
</text>);
}
因此,当我尝试运行它并单击一个复选框时,我得到 handleChecked() 未定义。所以我不确定在网格填充数据后绑定到剑道网格中的行的最佳方法是什么。它现在正在呈现服务器端,我正在尝试将函数回调到 DataBound 事件,但是遇到了一些麻烦。有什么想法吗?提前致谢。