【问题标题】:Kendo Grid prevent default requestKendo Grid 阻止默认请求
【发布时间】:2014-02-26 22:51:34
【问题描述】:

有什么方法可以阻止默认的 ajax 请求?在我将在 java 脚本中进行所有配置之后,我正在刷新网格,然后我开始请求,但不知何故,这个剑道网格是在页面加载时自动请求数据。

@(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))
)

【问题讨论】:

  • 尝试将autoBind设置为false
  • @OnaBai 嗯我也看到 enableCustomBinding 你知道有什么区别吗?

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


【解决方案1】:

简单介绍一下为什么会发生这种情况:当 Kendo UI Grid 没有与之关联的任何数据,但确实设置了读取传输配置选项时,它将触发获取数据的请求。当您使用 Ajax 绑定和页面大小的项目子集时,排序、分页、过滤、分组等也是如此。

无论如何,至于解决方案,您可以通过几种方式进行设置。

也许最简单的方法就是利用网格数据源的requestStart event 并取消任何不符合您条件的数据请求。

您也可以使用autoBind configuration option,如您的帖子评论中所述。

或者,您可以在 JavaScript 中在 Grid 之外定义一个 DataSource,然后在您需要的场景发生后等待将其分配给 Grid。可以通过一些简单的 JS 访问和分配 Grid 的 DataSource 属性,并且在正确分配 DataSource 之前,Grid 不会启动请求。

总的来说,对于这种情况,我建议将Kendo UI documentation 放在手边,因为它会为您提供网格和数据源的所有事件和配置选项。主要用于 JS 方面,但您很可能需要在此特定场景中以任何一种方式使用 JS。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多