使用 jQuery 更改 Kendo Grid DataSource 特定字段

Posted

技术标签:

【中文标题】使用 jQuery 更改 Kendo Grid DataSource 特定字段【英文标题】:Change Kendo Grid DataSource specific field with jQuery 【发布时间】:2014-10-01 21:22:00 【问题描述】:

我是 Kendo UI 的新手,非常感谢您的建议。

我有一个渲染 Kendo Grid 的局部视图:

<div class="accountsWindow" hidden="hidden">    
    @html.Partial("AccountsGrid", context.CustomerAccounts)    
</div>

观点:AccountsGrid.cshtml

@model IEnumerable<DAL.Model.CustomerAccount>

<div id="grid">
    @(Html.Kendo().Grid(Model)
      .Name("AccountsGrid")
      .Columns(columns =>
      
          columns.Bound(u => u.CUSTOMER_NO)
          ...    
      )
     .Pageable().HtmlAttributes(new id="AccGrid" )
    )
</div>

我的第一个问题是当我尝试访问网格时:

var grid = $("#AccGrid").data("kendoGrid");

它是undefined。会不会是因为隐藏了Part?

其次,我想动态更改 context.CustomerAccounts.Where(c=&gt;c.CUSTOMER_NO == someValue) 的现有数据源,但找不到解决方案。

【问题讨论】:

您将无法在文档就绪功能的主页上直接访问部分视图网格,但如果您希望对网格进行任何更改,请在网格上创建 DataBound 事件然后更新您希望进行的任何更改,例如过滤等。 @D_Learning,能否请您澄清一下,我添加了事件 Events(ev => ev.DataBound("dtBound")) 但我的函数既没有在主页中也没有在部分中触发。可以举个例子吗? 您是否尝试将过滤后的值传递给局部视图以将局部视图源设置为过滤。即:@Html.Partial("AccountsGrid", context.CustomerAccounts.Where(c=>c.CUSTOMER_NO == someValue)) 关于访问部分视图Grid中的值添加事件脚本像 DataBound 或 Document 在局部视图中准备就绪。 【参考方案1】:

你可以使用 json + jQuery 来改变你的数据源

var grid = $("#AccountsGrid").data("kendoGrid");
grid.setDataSource(dataSource);

【讨论】:

那么,有没有办法改变数据源的特定字段?而不是改变整个?

以上是关于使用 jQuery 更改 Kendo Grid DataSource 特定字段的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET MVC 上使用 Kendo Grid 更改数据

使用比较对 Kendo Grid JQuery 进行排序 - 排序时将空值放在最后

Kendo Grid,如何更改 Angular 中的可分页文本(页数、项目数)?

更改 Kendo Grid 列绑定

刷新 Kendo Grid Jquery 中的 DetailiInit

在容器 Kendo 窗口调整大小时动态更改 Kendo Grid 行的高度