我的日期格式为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
选项中尝试的正确顺序排序。
答案 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: true
和autoencode: true
选项添加到网格定义中。