使用json内容对网格进行排序

时间:2013-08-31 19:47:34

标签: javascript jquery json sorting

我使用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' },
    ]

});

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

1 个答案:

答案 0 :(得分:1)

来自网站:

  

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

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

你有两个选择:

  1. 将数据移至您正在处理的页面以允许本地排序
  2. 使用服务器支持的页面,该页面可以接收排序命令并返回以插件期望的方式格式化的数据