jgGrid не отображает данные json - PullRequest
1 голос
/ 02 июля 2010

Это сводит меня с ума сумасшедший , поэтому любая помощь будет потрясающей:

Мой HTML-код выглядит следующим образом:

<asp:Content ID="Content3" ContentPlaceHolderID="Content" runat="server" class="MainLoginScreen">
       <table id="StudyTable"></table>
       <div id="StudiesPager"></div>
</asp:Content>

Мойjavascript выглядит следующим образом:

<script language="javascript" type="text/javascript">
        $(document).ready(function () {
            $("#StudyTable").jqGrid({
                url: '/StudyManager/GetStudyTable.aspx',
                datatype: "json",
                mtype:"GET",
                colNames: ['Name', 'URL', 'Creation Date', 'Description', 'Status'],
                colModel:[
                    { name: 'Name', width: 200},
                    { name: 'URL', width: 100 },
                    { name: 'Creation_Date', width: 300},
                    { name: 'Description', width: 200 },
                    { name: 'Status', width: 200}
                ],
            rowNum:10,
            rowList:[10,20,30],
            viewrecords: true,
            sortname: 'Name',
            sortorder: "asc",
            pager: $('#StudiesPager'),  
            imgpath: '/Content/Images',
            jsonReader: {
                root: "rows",
                page: "page",
                total: "total",
                records: "records",
                repeatitems: true,
                cell: "cell",
                id: "id"
            },
            width: 800,
            height: 400 
            });
        }); 
    </script>

и мой код cs:

protected void Page_Load(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("{'total':1,");
            sb.Append("'page':'1',");
            sb.Append("'records':'1',");
            sb.Append("'rows': [");
            sb.Append("{ 'id':'123', 'cell':['abc','abc','abc','abc','abc']}");
            sb.Append("]}");

            Response.Clear();
            Response.StatusCode = 200;
            Response.Write(sb.ToString());
            Response.End();
        }

Таблица и пейджер отображаются отлично, но данные не отображаются в таблице.Возвращенный json из моего cs, похоже, имеет правильный формат:

{'total':1,'page':'1','records':'1','rows': [{ 'id':'123', 'cell'['abc','abc','abc','abc','abc']}]}

Но данные не отображаются в сетке.

Ответы [ 2 ]

2 голосов
/ 02 июля 2010

Также вы можете создать что-то вроде:

public class JqGridJsonData
{
   public int Total {get;set;}
   public int Page {get;set;}
   etc
}

И сериализовать это в JSON с Json.NET http://james.newtonking.com/pages/json-net.aspx

1 голос
/ 02 июля 2010

Из всего, что могло вызвать проблемы - это были одинарные цитаты. JSON, по-видимому, не допускает слово «word», а нуждается в «word».

Таким образом, вывод json из cs должен был быть:

{"total":"1","page":"1","records":"1","rows": [{ "id":"123", "cell"["abc","abc","abc","abc","abc"]}]} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...