2013-07-23 2 views
0

날짜가 MM/DD/YYYY으로 표시되었지만 올바른 형식으로 정렬되지 않았습니다. 그것은 쓰레기 데이터를 추가합니다.Jquery 날짜가 올바른 형식으로 정렬되지 않습니다.

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 개의 레코드가로드됩니다. 날짜를 사용하여 해당 레코드를 정렬하고 싶습니다. 그러나 나는 datefmt 옵션에서 시도한 올바른 순서로 정렬 할 수 없습니다.

+0

질문을 좀 더 명확하게 표현해주십시오. 질문을 수정하고 싶지만 편집 할 내용을 모릅니다. – Sid

+0

정렬 작업은 무엇입니까? – JJJ

+0

테스트 데이터 'gridData'를 포함하면 설명하는 문제가 재현 될 수 있습니다. 그런데'addRowData'를 기준으로 그리드를 채우지 않고'reloadGrid'로 다시로드하는 대신'data : gridData' 옵션을 그리드에 추가 할 수 있습니다. – Oleg

답변

0

올바른 입력 형식을 사용해야합니다. formatter:'date'에 대해 속성을 formatoptions에 지정하지 않았으므로 jqGrid는 기본 ISO 8601 (ISO8601Short) 데이터 형식 ("Y-m-d")을 사용한다고 가정합니다. 예를 들어 오늘 날짜는 "2013-07-24" 문자열로 표시되어야합니다. 다른면에서 나는 datefmt: 'yyyy-mm-dd' 대신 datefmt: 'mm-dd-yyyy'을 지정했다고 생각됩니다. 그런데 datefmt 대신 formatoptions.srcformat을 사용하는 것이 좋습니다.

요약 :

{name: "expdate", align: "center", width: 80, sorttype: "date", 
formatter: "date", formatoptions: {newformat: "mm/dd/yyyy"}} 
    expdate 열의
  • 변화 정의 ("2013년 7월 24일"등)에 "Y-m-d"gridData[i].expdate에서 입력 데이터의

    • 변경 형식
    • 모든 항목에 원하는 rowid로 id 특성을 추가하십시오. 배열은 gridData입니다. 데이터의 일부 열에 이미 고유 값이 포함 된 경우 key: true을 해당 열 정의에 추가 할 수 있으며 입력 데이터에 id 속성이 필요하지 않습니다. 예를 들어 expno에 고유 한 값이 포함되어있는 경우 을 expno 열의 정의에 추가 할 수 있습니다.
    • addRowData을 기준으로 루프의 격자 채우기 대신 data: gridData 매개 변수를 사용하십시오.
    • 격자 정의에 gridview: trueautoencode: true 옵션을 추가하십시오.
관련 문제