2013-02-25 4 views
0

J'utilise les plugins struts2-jquery-jqgrid pour construire la grille. J'ai filtre-searc ** h sur cette grille. J'ai une liste déroulante sur la colonne assigned_user pour filtrer la grille en fonction de l'option sélectionnée dans la liste déroulante. ** Mes grille déjà construites en utilisant des entretoisescomment charger json dans jqgrid

<s:url var="remoteurl" action="adminJsontable"> 
    </s:url> 
    <sjg:grid 
     id="gridtable" 
     caption="Issue-Summary" 
     dataType="json" 
     href="%{remoteurl}" 
     pager="true" 
     gridModel="finalGridModel" 
     rowList="10,20,25" 
     rowNum="10" 
     rownumbers="true" 
     width="1250" 
     filter="true" 
     filterOptions="{stringResult :false, 
         searchOnEnter : true, 
         enableClear : true, 
         autosearch : false 
         }" 
     loadonce="false" 

    > 
     <sjg:gridColumn name="issue_id" id="issueId" index="id" title="Issue-ID" formatter="integer" formatoptions="{thousandsSeparator: ''}" sortable="false" width="100"/> 
     <sjg:gridColumn name="issue_description" index="issue_description" title="Issue-Details" sortable="false" width="300"/> 
     <sjg:gridColumn name="issue_raised_date" index="issue_raised_date" title="Issue-Date" formatter="date" sortable="false" width="100"/> 

     <sjg:gridColumn name="issue_action" index="issue_action" title="Action" formatter="formatLink" sortable="false"/> 

     <sjg:gridColumn name="assigned_to" index="assigned_user" key="assigned_user" title="Assigned To" 
     sortable="false" 
     searchtype="select" 
     search="true" 
     searchoptions="{defaultSearch:'cn', dataUrl : '%{fillUser}', 
         dataEvents: [{ type: 'change', data: { field: 'assigned_user',operation:'eq'}, fn: function(elem) { filterFunction(elem)}}]}"/> 

    </sjg:grid> 

I filtrer cette grille en utilisant suivantes

function filterFunction(ele) { 
    var selectedOption=$(ele.target).val(); 
    $.ajax({ 
     url: "adminJsontable?searchString=" + selectedOption + "&searchField=" + ele.data.field, 
     dataType: "json", 
     complete: function (jsondata, stat) { 
      if (stat=="success") { 
       //here i am loading the json data as response from server 
       jQuery("#gridtable")[0].addJSONData(jsondata); 
      } 
     } 
    }); 
} 

JSON-données contenant la liste des objets suivants:

public class Jgrid_Data 
{ 
    private String issue_id;//getters & setters 
    private String issue_raised_date; 
    private String issue_description; 
    private String issue_status; 
    private String assigned_to; 

Problème:

première fois lorsque jqgrid chargé, il fonctionne simplement génial, il est chargé par le même json-data ie une liste du serveur, mais quand je filtre la grille et charge la même collection avec des données différentes jqgrid ne montre pas de lignes .Pourquoi est-ce qui se passe?

MISE À JOUR SECTION: Cette mes JSON données

{ 
    "finalGridModel": [ 
     { 
      "assigned_to": "neo", 
      "issue_description": "Balance not Showing_OR7520180001", 
      "issue_id": "2880", 
      "issue_raised_date": "2012-03-05", 
      "issue_status": "Assigned" 
     }, 
     { 
      "assigned_to": "neo", 
      "issue_description": "Re: for accounts", 
      "issue_id": "3215", 
      "issue_raised_date": "2012-03-10", 
      "issue_status": "Assigned" 
     }, 
     { 
      "assigned_to": "neo", 
      "issue_description": "[Fwd: Transaction issue of chhatarpur M.P.csp Rohit jain", 
      "issue_id": "3714", 
      "issue_raised_date": "2012-03-15", 
      "issue_status": "Assigned" 
     }, 
     { 
      "assigned_to": "neo", 
      "issue_description": "Balance not Showing_(Sambalpur)_19_03_2012", 
      "issue_id": "3995", 
      "issue_raised_date": "2012-03-19", 
      "issue_status": "Assigned" 
     }, 
     { 
      "assigned_to": "neo", 
      "issue_description": "Fwd: issue no-103", 
      "issue_id": "4003", 
      "issue_raised_date": "2012-03-19", 
      "issue_status": "Assigned" 
     } 
    ], 
    "issueTrackerInstance": { 
     "assigned_by": null, 
     "issue_id": null, 
     "issue_status": null, 
     "tracked_time": null, 
     "tracker_name": null, 
     "tracker_status": null 
    }, 
    "page": 1, 
    "records": 10, 
    "rows": 10, 
    "session": { 
     "filter_user": "neo", 
     "userName": "admin" 
    }, 
    "sidx": null, 
    "sord": "asc", 
    "stringResult": null, 
    "total": 1 
} 

toute aide serait grande

Répondre

0

Trouver la solution, il suffit de changer la ajax-événement de complet succès.

success: function(jsondata,stat) 
    { 
    if(stat=="success") 
    { 
    jQuery("#gridtable")[0].addJSONData(jsondata);//here i am loading the json data as response from server 
    }