Jquery日期没有以正确的格式排序

时间:2013-07-23 14:58:08

标签: jquery jqgrid

我的日期格式为MM/DD/YYYY,但它们没有以正确的格式排序。它添加了垃圾数据。

function loadGrid() 
{

$("#grid").jqGrid({
    datatype: "local",
    altRows: true,
    altclass: 'myAltRowClass',
    colNames:['Expense # ', 'Description', 'Expense Date ', 'Amount ', 'Status '],
    colModel:[
        {name:'expno',index:'expno', width:80, align:"center",sorttype:"string"},
        {name:'desc',index:'desc', width:150, align:"center",sortable:false},
        {name:'expdate',index:'expdate', align:"center",width:80, sorttype:'date',formatter:'date', formatoptions: {newformat:'mm/dd/yyyy'}, datefmt: 'mm-dd-yyyy'},
        {name:'expamnt',index:'expamnt',align:"left", width:70,sortable:false},
        {name:'estatus',index:'estatus', width:90, align:"center",sortable:false},
    ],

    beforeSelectRow: function(rowid, e) {   return false;},
    hidegrid: false,
    height: "auto",
    width: "700",
    multiselect: false,
    caption: "My Expenses",
    rowList:[10,20,30],
    rowNum: 10,
    page: 1,
    pager: '#pager',
    viewrecords: true,
    sortname:'expno',
    sortorder: 'asc',
    loadComplete: function () {
        $( ".selector" ).button({});

        $("#grid").effect("highlight", {}, 1500);
    }
});

for(var i=0;i<=gridData.length;i++)
    jQuery("#grid").jqGrid('addRowData',i + 1, gridData[i]);
jQuery("#grid").setGridParam({rowNum:10}).trigger("reloadGrid");
}

在此功能之后,网格加载了10条记录。我想使用Date对这些记录进行排序。但是,我无法按照datefmt选项中尝试的正确顺序排序。

1 个答案:

答案 0 :(得分:0)

您应该验证是否使用了正确的输入格式。您没有在srcformat中为formatoptions指定任何formatter:'date'属性,因此jqGrid假设您使用默认的ISO 8601(ISO8601Short)数据格式:"Y-m-d"。例如,今天的日期应该表示为字符串"2013-07-24"。另一方面,我似乎非常怀疑您指定了datefmt: 'mm-dd-yyyy'而不是datefmt: 'yyyy-mm-dd'。顺便提一下,我建议您使用formatoptions.srcformat代替datefmt

摘要:

  • gridData[i].expdate中的输入数据格式更改为"Y-m-d"(如“2013-07-24”)
  • expdate列的定义更改为
{name: "expdate", align: "center", width: 80, sorttype: "date",
formatter: "date", formatoptions: {newformat: "mm/dd/yyyy"}}
  • id属性添加到您想要gridData数组的每个项目的rowid。如果您的数据的某些列已包含某些唯一值,那么您也可以将key: true添加到相应的列定义中,并且不需要在输入数据中具有id属性。例如,如果expno包含唯一值,您可以将key: true添加到expno列的定义中。
  • 使用参数data: gridData而不是在addRowData的循环中填充网格。
  • gridview: trueautoencode: true选项添加到网格定义中。