使用XML DATA的jqGrid无法对列中的数据进行排序

时间:2013-05-23 15:28:53

标签: jqgrid

我遇到了在我的网格中排序数据的问题...当我点击列(例如totalprice)进行排序时,它不会排序

我会粘贴我的代码:

// GRID Model
$("#grid-list").jqGrid({
    url:'grid.php',
    datatype: 'xml',
    mtype: 'GET',
    autowidth: true,
    xmlReader: { 
        root:"rows", 
        row:"row",
        page:"page", 
        total:"total", 
        records:"records",
        repeatitems:true,
        cell:"cell",
        id : "[id]"
    },
    colNames:['ID','Utente','Data Richiesta','Data Approvato', 'Data Ordine','Data Arrivo','Stato','Fondi','Urgente','Importo','Note'],
    colModel :[ 
      {name:'id', index:'id', width:50, align:'right'}, 
      {name:'userid', index:'userid', width:60}, 
      {name:'daterequested', index:'daterequested', width:150, align:'center', sorttype: 'date', formatter: 'date', 
      formatoptions: { newformat: 'd-M-Y' }, datefmt: 'd-M-Y'}, 
      {name:'dateapproved', index:'dateapproved', width:50, align:'center'},
      {name:'dateordered', index:'dateordered', width:50, align:'center'},
      {name:'datearrival', index:'datearrival', width:50, align:'center'}, 
      {name:'orderstatus', index:'orderstatus', width:70, align:'center'},
      {name:'funds', index:'funds', width:70, align:'center' },
      {name:'urgent', index:'urgent', width:65,align:'center'},
      {name:'totalprice', index:'totalprice', width:50,align:'center', sorttype: 'float'},
      {name:'comments', index:'comments', width:250}

    ],
    pager: '#pager-list', 
    rowNum:10,
    rowList:[10,20,30],
    sortname: 'id',
    sortorder: 'asc',
    viewrecords: true,
    gridview: true,
    caption: 'Ordini'
});

$("#grid-list").jqGrid('navGrid', '#pager-list', { view: true, edit: false, add: false, del: false, search: true, refresh: true });
$("#grid-list").jqGrid('navButtonAdd','#pager-list',{
    caption:"Export", 
    onClickButton : function () { 
    exportExcel();
    }
});

对我做错的任何建议? 感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您使用datatype: 'xml',则表示应实施服务器端排序。如果数据集不是很大,您可以从网格中一次加载所有数据并使用loadonce: true选项。在这种情况下,后面的排序(在第一次加载数据之后)将由jqGrid本身本地实现。您需要做的唯一事情是为列指定sorttype属性,哪些内容不应被解释为字符串。您已使用的大多数列已具有该属性。所有其他列将在本地作为字符串进行排序。