Kendo Grid阻止默认请求

时间:2014-02-26 22:51:34

标签: kendo-ui kendo-grid kendo-asp.net-mvc

有什么方法可以防止默认的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))
)

1 个答案:

答案 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。