2015-06-01 10 views
6
jq(function(){ 
    var token = window.location.href 
    .substring(window.location.href 
      .lastIndexOf('=') + 1); 
    jq("#grid").jqGrid({ 
     url:'/test/umpire/getFixtures', 
     datatype: 'json', 
     mtype: 'GET', 
     colNames:['Category', 'Tournament','Date', 'Ground','Team 1','Team 2','Umpire 1','Umpire2','Umpire 3','Match Refree','Match Obsrver','Scorer 1','Scorer 2'], 
     colModel:[ 
      {name:'categoryName',index:'categoryName', width:100,editable:true, editrules:{required:true}, editoptions:{size:10,readonly: 'readonly'}}, 
      {name:'tournamentName',index:'tournamentName', width:200,editable:true, editrules:{required:true}, editoptions:{size:10}}, 
      {name:'matchFromDate',index:'matchFromDate', width:100,formatter: "date",sorttype: "date",formatoptions:{srcformat: "U/1000", newformat: "m/d/Y"},search:true, searchoptions: {sopt: ['eq','ne'], 
       dataInit : function (elem) { 
        jq(elem).datepicker({dateFormat:'mm-dd-yy', changeYear: true, changeMonth: true, showButtonPanel: true, showOn: 'focus'}); 
       }}}, 
      {name:'groundName',index:'groundName', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}}, 
      {name:'team1Name',index:'team1Name', width:150,editable:true, editrules:{required:true}, editoptions:{size:10}}, 
      {name:'team2Name',index:'team2Name', width:150,editable:true, editrules:{required:true}, editoptions:{size:10}}, 
      {name:'umpire1',index:'umpire1', width:100,formatter: function (cellvalue, options, rowObject) { 
       return '<a href="/TNCA/umpire/assign?id=' + options.rowId + '&name='+cellvalue+'&token=${token}">'+cellvalue+'</a>'; 
      }}, 
      {name:'umpire2',index:'umpire2', width:100,formatter: function (cellvalue, options, rowObject) { 
       return '<a href="/TNCA/umpire/assign?id=' + options.rowId + '&name='+cellvalue+'&token=${token}">'+cellvalue+'</a>'; 
      }}, 
      {name:'umpire3',index:'umpire3', width:100,formatter: function (cellvalue, options, rowObject) { 
       return '<a href="/TNCA/umpire/assign?id=' + options.rowId + '&name='+cellvalue+'&token=${token}">'+cellvalue+'</a>'; 
      }}, 
      {name:'matchRefree',index:'matchRefree', width:100,formatter: function (cellvalue, options, rowObject) { 
       return '<a href="/TNCA/umpire/assign?id=' + options.rowId + '&name='+cellvalue+'&token=${token}">'+cellvalue+'</a>'; 
      }}, 
      {name:'matchObserver',index:'matchObserver', width:100,formatter: function (cellvalue, options, rowObject) { 
       return '<a href="/TNCA/umpire/assign?id=' + options.rowId + '&name='+cellvalue+'&token=${token}">'+cellvalue+'</a>'; 
      }}, 
      {name:'scorer1',index:'scorer1', width:100,formatter: function (cellvalue, options, rowObject) { 
       return '<a href="/TNCA/umpire/assign?id=' + options.rowId + '&name='+cellvalue+'&token=${token}">'+cellvalue+'</a>'; 
      }}, 
      {name:'scorer2',index:'scorer2', width:100, formatter: function (cellvalue, options, rowObject) { 
       return '<a href="/TNCA/umpire/assign?id=' + options.rowId + '&name='+cellvalue+'&token=${token}">'+cellvalue+'</a>'; 
      }}, 

     ], 



     postData:{ 


     filters:'{"groupOp":"AND","rules":[{"field":"matchFromDate","op":"gt","data":"2007-09-06"},{"field":"matchFromDate","op":"lt","data":"2007-10-04"}]}' 

     }, 
     editurl :"/test/home/?token=${token}", 
     rowNum:20, 
     shrinkToFit: true, 
     rowList:[10,20,30], 
     height: 400, 
     autowidth: true, 
     rownumbers: true, 
     pager: '#pager', 
     sortname: 'matchFromDate', 
     viewrecords: true, 
     height:"100%", 
     sortorder: "asc", 
     caption:"<h2>Assign Umpire</h2>", 
     emptyrecords: "Empty records", 
     loadonce: true, 
     loadComplete: function(response) { 
    console.log(JSON.stringify(response)) 

     }, 
     jsonReader : { 
      root: "rows", 
      page: "page", 
      total: "total", 
      records: "records", 
      repeatitems: false, 
      cell: "cell", 
      id: "tournamentID" 
     } 


    }); 

Hallo oben ist mein jqgrid-Code. Ich habe Probleme beim Suchen des Datumsfeldes (matchFromDate). Ich ging über viele Antworten in diesem Forum, aber ich konnte die Suche nach Datum noch nicht erreichen.Jqgrid Suche nach Daten funktioniert nicht

Von json wie diese '1432683305000'

Mein jqGrid Version Ich bin ist das Datum immer 4.8.2 und ich bin mit Spring MVC.

Kann mir bitte jemand helfen, dieses Problem zu lösen? Vielen Dank im Voraus

+0

das gibt Ihnen das Datum, wie viele Millisekunden von einem Datum (1/1/1970), also wenn Sie es in neues Datum übergeben (1432683305000), können Sie das aktuelle Datum abrufen. – Daemedeor

+0

Yup kann ich erreichen, indem Sie u/1000 im Format Option. Mein Problem ist, dass die Suche nicht mit dem Datum funktioniert. – Rajkumar

+0

Durch "Probleme beim Durchsuchen des Datumsfelds" könnten Sie erweitern? Ich sehe keine Optionen, die Sie in die Suche eingeben? – Daemedeor

Antwort

3

Es scheint mir, dass das Hauptproblem in Ihrem Code die Verwendung von formatoptions:{srcformat: "U/1000"} in Ihrem Code ist. Eine solche Eigenschaft kann den Code formatieren, speichert jedoch die ursprünglichen Werte des Datums in den lokalen Rasterdaten. Später versuchen Sie, jQuery UI Datepicker zu verwenden und es hat Problem, das Datum in dem Format zu verwenden. Sie können @ Syntax verwenden (siehe the documentation), aber Sie werden immer noch zwei Probleme haben. Der erste: Das Datum wird im Unix-Zeitstempelformat im Datapicker angezeigt, was nicht gut ist. Das zweite Problem: Die formatoptions:{srcformat: "U/1000"} speichert die Daten unverändert (mit Stunden, Minuten, Sekunden des Eingabedatums), aber Sie möchten ignorieren Stunden, Minuten, Sekunden und so weiter aus den Eingabedaten. So

Ich schlage vor, Sie die folgenden Eigenschaften zu verwenden:

formatter: "date", formatoptions: {newformat: "m/d/Y"}, 
jsonmap: function (obj) { 
    var d = new Date(parseInt(obj.matchFromDate, 10)); 
    return d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate(); 
} 

mit jsonmap, die die Stunde schneiden, min, ... Teile der Eingabedaten und wandelt es in der Zeichenfolge mit dem Format der Nähe von ISO 8601.

The jsfiddle demo verwendet den obigen Code und einige andere Einstellungen, die für Sie hilfreich sein könnten: Spaltenvorlagen, onSelect Rückruf von datepicker und einige andere. Ich benutze free jqGrid (derzeit in der Version 4.9 RC1) anstelle von Guriddo jqGrid JS 4.8.2, aber ich habe versucht, fast nicht frei jqGrid spezifische Funktionen (siehe wiki), so sollte es auch mit Guriddo jqGrid arbeiten.

+0

Es funktioniert jetzt gut. Vielen Dank für Ihre großartige Hilfe. – Rajkumar

+0

@Rajkumar: Gern geschehen! Ich bin froh, dass ich dir helfen konnte. – Oleg