我的.ts(.js)文件中有一个点击事件。当用户点击我正在进行ajax调用以获取数据。成功之后,我将绑定此数据以创建动态kendo网格(网格数量因数据而异。)
执行事件后,我想执行一些代码。但是在执行此代码时,特定网格不可用。如何等待网格可用然后执行此代码?在同一个点击事件中准备好的jquery文档无效。
$(chkBox).click(() => {
var chk = $(event.target);
var val = chk.val();
if (chk.prop("checked")) {
// code removed for bravity
proxyEle.getData(myObject).done(result => {
// this div has partial view which binds data from result.
$(divGrids).html(<string>result); // this part creates kendo grids dynamcially based on data.
// here I want to execute my code on the grid elements
//but this code is executing before grid creation is complete.
//So my code is not working. Why here? My grid ids are
// like "SomeConstName"+chk.val(); this val() I only get here.
}).fail(error => {
// handle error
});
}
}
为什么在那里执行我的代码?因为我使用网格ID为“ConstGridName”+ chk.value();
我在上面的代码中得到的这个Id值。这就是为什么我想在那里执行我的代码。如何延迟我的代码执行,直到所有网格都准备好了?
答案 0 :(得分:0)
知道网格何时完成(和绑定)的唯一方法是订阅DataBound事件(当网格填充数据时触发)
.Events(ev => ev.DataBound("onGridDataBound"))
在那里你可以运行你的代码。