2

我正在使用 w2ui w2ui.com来显示网格。当网格记录存储在本地时,html 文件排序工作。

但我想在 json 文件上动态使用这个函数。

我有这个 json 文件(test.json):

{
    total: 9,
    page: 0,
    records: [
        { recid: 11, fname: 'John', lname: 'Doe', email: 'jdoe@gmail.com', sdate: '4/3/2012' },
        { recid: 12, fname: 'Stuart', lname: 'Motzart', email: 'jdoe@gmail.com', sdate: '4/3/2012' },
        { recid: 13, fname: 'Jin', lname: 'Franson', email: 'jdoe@gmail.com', sdate: '4/3/2012' },
        { recid: 14, fname: 'Susan', lname: 'Ottie', email: 'jdoe@gmail.com', sdate: '4/3/2012' },
        { recid: 15, fname: 'Kelly', lname: 'Silver', email: 'jdoe@gmail.com', sdate: '4/3/2012' },
        { recid: 16, fname: 'Francis', lname: 'Gatos', email: 'jdoe@gmail.com', sdate: '4/3/2012' },
        { recid: 17, fname: 'Mark', lname: 'Welldo', email: 'jdoe@gmail.com', sdate: '4/3/2012' },
        { recid: 18, fname: 'Thomas', lname: 'Bahh', email: 'jdoe@gmail.com', sdate: '4/3/2012' },
        { recid: 19, fname: 'Sergei', lname: 'Rachmaninov', email: 'jdoe@gmail.com', sdate: '4/3/2012' }
    ]
}

我使用以下代码将其加载到网格中:

$('#grid-customers').w2grid({ 
    name: 'grid-customers',
    url: 'data/test.json',

    columns: [              
        { field: 'recid', caption: 'ID', size: '50px', sortable: true, attr: 'align=center' },
        { field: 'lname', caption: 'Last Name', size: '30%', sortable: true },
        { field: 'fname', caption: 'First Name', size: '30%', sortable: true },
        { field: 'email', caption: 'Email', size: '40%' },
        { field: 'sdate', caption: 'Start Date', size: '120px' },
    ]

});

但我无法对其进行排序或搜索网格内的内容。每次单击网格标题(用于列排序)时,我都会看到排序箭头和一个名为“刷新...”的弹出窗口,但列没有得到排序。

4

1 回答 1

1

从网站:

如果数据是本地的,则网格将执行本地排序。如果数据是远程的,网格会将排序字段提交到服务器端。

这意味着如果您使用 url 属性从外部源(甚至是静态文件)加载数据,插件将尝试将排序命令发送到远程源并期望它完成工作。

您有两个选择:

  1. 将数据移动到您正在处理的页面中以允许本地排序
  2. 使用服务器支持的页面,该页面可以接收排序命令并以插件期望的方式返回格式化的数据
于 2013-08-31T19:54:13.730 回答