有什么方法可以防止默认的ajax请求?我将在java脚本中进行所有配置之后刷新网格,然后我开始请求,但不知何故,这个kendo网格是在加载页面时自动请求数据。
@(Html.Kendo().Grid<Data>()
.Name("grid")
.HtmlAttributes(new { Class = "acceleratorGrid" })
.TableHtmlAttributes(new { Class = "styled", cellpadding = "0", border = "0", margin = "0" })
.Events(e => e.Change("onChange"))
.DataSource(dataSource => dataSource // Configure the grid data source
.Ajax() // Specify that ajax binding is used
.Read(read => read.Action("Products_Read", "Home")) // Set the action method which will return the data in JSON format
)
.Columns(columns =>
{
columns.Bound(product => product.ProductID).Template(@<text></text>).ClientTemplate("<input type='checkbox' onclick='return false' name='checkedRecords' />");
columns.Bound(product => product.ProductName);
columns.Bound(product => product.UnitsInStock);
}
).Selectable(s => s.Mode(GridSelectionMode.Single))
)
答案 0 :(得分:5)
就像为什么会发生这种情况一样快速介绍:当Kendo UI Grid没有绑定任何数据,但确实设置了读传输配置选项时,它将触发获取数据的请求。当您使用Ajax绑定和页面大小的项目子集时,排序,分页,过滤,分组等也是如此。
无论如何,至于解决方案,有几种方法可以设置它。
也许最简单的方法就是利用Grid的DataSource的requestStart event并取消任何不符合您标准的数据请求。
您也可以使用帖子评论中提到的autoBind configuration option。
或者,您可以在JavaScript中定义Grid外部的DataSource,然后等待所需方案发生后将其分配给Grid。可以通过一些简单的JS访问和分配Grid的DataSource属性,并且在正确分配DataSource之前,Grid不会启动请求。
总的来说,我建议保持Kendo UI documentation近在咫尺,因为它将为您提供Grid和DataSource的所有事件和配置选项。主要是JS方面的事情,但你很可能需要在这种特定情况下使用JS。