如何在jqgrid中加载json [英] how to load json in jqgrid

查看:76
本文介绍了如何在jqgrid中加载json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用struts2-jquery-jqgrid插件来构建Grid。我在这个网格上有 filter-searc ** h。我在列assigned_user上有一个下拉列表,根据从下拉列表中选择的选项过滤网格。
**我已使用struts构建的网格

I am using struts2-jquery-jqgrid plugins to construct the Grid. I having filter-searc**h on this grid. I have a drop-down list on column assigned_user to filter grid based on the option selected from drop-down list. **My already constructed grid using struts

<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 filter this grid using following

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显示没有行。为什么会发生这种情况?

first time when jqgrid loaded ,it just works awesome, It is loaded by the same json-data i.e. a list from server, but When I filter the grid and load the same collection with different data jqgrid shows no rows.Why this is happening?

更新部分:这是我的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
}

任何帮助都会很棒

推荐答案

找到解决方案,只需将ajax事件从完成更改为成功。

Find the solution , just change the ajax-event from complete to success.

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

这篇关于如何在jqgrid中加载json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆