0

struts2-jquery-jqgrid プラグインを使用してグリッドを構築しています。このグリッドで filter-search**h を使用しています。ドロップダウン リストから選択したオプションに基づいてグリッドをフィルター処理するために、列 assigned_user にドロップダウン リストがあります。**支柱を使用して既に構築されたグリッド

<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>

次を使用してこのグリッドをフィルタリングします

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-data:

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;

問題のシナリオ:

初めてjqgridがロードされたとき、それはただ素晴らしく動作します.同じjson-data、つまりサーバーからのリストによってロードされますが、グリッドをフィルタリングして同じコレクションを異なるデータでロードすると、jqgridは行を表示しません.なぜこれが起こっているのですか?

更新セクション:これは私のjson-dataです

{
    "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
}

どんな助けでも素晴らしいでしょう

4

1 に答える 1

0

解決策を見つけて、ajax-event を complete から success に変更するだけです。

 success: function(jsondata,stat)
  { 
  if(stat=="success") 
  {
  jQuery("#gridtable")[0].addJSONData(jsondata);//here i am loading the json data as response from server
  }
于 2013-02-28T10:23:28.640 に答える