我有一个MVC Kendo UI网格,我试图附加dataBound事件。以下是我尝试使用的两种方法。如果我能
,我会倾向于第一种方法@(Html.Kendo().Grid<BatchDetails>()
.Name("Grid")
.Columns(col =>
{
col.Bound(p => p.BatchKey).Title("State");
col.Bound(p => p.OriginalCost).Title("Total Cost");
})
.AutoBind(true)
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Read(read => read
.Action("GetData", "Home", new { batchID = Model.BatchID })))
)
1&gt; 我想在文档就绪函数中绑定网格的DataBound事件。 但当我这样做时,我得到空参考
$function({
var grid = $("#Grid").data("kendoGrid"); // grid variable is null here
grid.bind("dataBound", function(){
//dosomething here
});
})
2&gt; 如果我使用以下方法绑定事件,那么我必须将onDataGridBound函数声明为Global。网格无法访问范围函数
@(Html.Kendo().Grid<BatchDetails>()
.Name("Grid")
.Events(x => x.DataBound("onDataGridBound"))
)
有没有办法将onDataGridBound声明为作用域函数,并且网格仍然可以访问它?
答案 0 :(得分:3)
根据Telerik documentation,你必须确保你的准备好的功能在>>小部件声明后放置:
您可以通过数据jQuery方法获取由服务器端包装器初始化的客户端对象的引用。在 ID jQuery选择器中使用窗口小部件的名称,并在document.ready处理程序中获取引用,该窗口小部件在窗口小部件声明之后放置或调用 。这将确保窗口小部件已初始化并且客户端对象存在。获得对象引用后,您可以使用窗口小部件的客户端API。
@(Html.Kendo().NumericTextBox()
.Name("age")
)
<script>
$(function(){
var numeric = $("#age").data("kendoNumericTextBox");
numeric.value(10);
});
</script>