0

我有一个 ASP.Net MVC3 Web 应用程序一直在使用jQuery 表单插件进行 ajaxSubmit。我有一个网格,我在过滤、排序和分页时使用 ajax 回发来刷新它- 简单来说,我只是替换了从 ajax 回发获得的网格 html 结果。适用于任何类型的网格功能,因为网格 html 是在服务器端呈现的。

现在,我正在寻找一个基于 json 的网格,它具有一些基本功能,如排序、分页以及可能的分组和服务器端分页!可编辑网格不是主要焦点,但它会是一个额外的优势。我看到大多数解决方案都指向Knockoutjs。我一直在尝试,但它需要更多的功课,尤其是分组等高级功能......

我找到了一些基本的例子,比如

  1. Knockoutjs 基本网格(带添加/删除)
  2. SimpleGrid 组件
  3. jQgrid也支持json
  4. jqxgrid

除此之外,我还遇到了一个新概念——JsonML + 浏览器端模板 (JBST)基本上,它适用于 json,在将元素添加到页面之前,它允许我们更改元素的行为。浏览器端模板。有没有人经历过?能和KO比吗?

我欢迎您对我的基于 json 的简单特色网格提出建议和专业建议(假设 json 是传递数据的最佳方式)。如果您知道另一种方法,也请分享。

4

3 回答 3

2

你检查过 KoGrid,它是一个原生的 KO 网格

https://github.com/Knockout-Contrib/KoGrid

于 2013-02-03T00:33:06.293 回答
1

我做了功课,这是我的最终结论。首先 - 没有像 KO 支持这样的东西 - 插件必须有一个 ko 绑定处理程序(KOGrid 除外)。

DataTables -支持 json但找不到原生 KO 支持(外部插件)。绑定看起来简单直接 fwd 但许多差异脚本文件。

SlickGrid - 支持json但需要一些后期处理。可能的外部KO 绑定可行。使用 ko.utils.unwrapObservable。

ko.SimpleGrid绑定 ko.bindingHandlers.simpleGrid 的实现(支持分页)如KO 演示中所见。(没有对排序的原生支持,但可以扩展

我最后的选择——

KOGrid可能是第一个纯 KO 为基础的网格!所以显然json兼容。支持本机排序(无需额外的脚本)。还发现了大型数据集的服务器端分页。合而为一

function columnDefsVM() {
    var self = this;
    this.myData = ko.observableArray([{ name: "Moroni", age: 50 },
                     { name: "Tiancum", age: 43 },
                     { name: "Enos", age: 34 }]);
    this.gridOptions = { data: self.myData,
      columnDefs: [{field: 'name', displayName: 'Name'},{field: 'age', displayName: 'Age'}]
    };
}
ko.applyBindings(new columnDefsVM());

还有一些——

于 2013-02-05T19:15:00.617 回答
0

您还可以在这里查看网格示例:jqxGrid with Knockout

于 2013-02-02T15:03:38.030 回答