0

私はjqgridのスターターです。jqgridを作成して埋めるためにこのコードを書きます(私はasp.netでリポジトリパターンを使用しています)

    namespace Clearance.Helper
    {
        using System;
        public class JQGridRow
        {
            public int id;
            public string[] cell;
        }
    }

    namespace Clearance.Helper
    {
        public class JQGridResults
        {
            public int Page { get; set; }
            public int Total { get; set; }
            public int Records { get; set; }
            public JQGridRow[] rows;
        }
     }

namespace Clearance.Business
{
    using System;
    using System.Linq;
    using Model;
    using Clearance.Repository;
    using System.Collections.Generic;
    using System.Web.Script.Serialization;
    using Clearance.Helper;
    public class TransportTypesBusiness : GenericBusiness<CLEARANCEEntities, TRANSPORT_TYPES>
    {


    public List<TRANSPORT_TYPES> GetAll(int pageSize, int pageIndex)
            {
                var repository = new TransportTypesRepository(this.Context);
                return (List<TRANSPORT_TYPES>) repository.GetAll().OrderBy(c => c.TRANSPORT_ID).Skip(pageIndex * pageSize).Take(pageSize);
            }




     public string BuildJQGridResults(int numberOfRows = 0, int pageIndex = 0, int totalRecords = 0)
            {
                var result = new JQGridResults();
                var rows = new List<JQGridRow>();
                var list = GetAll(numberOfRows, pageIndex);
                int li = list.Count();
                totalRecords = list.Count();
                foreach (var item in list)
                {
                    var row = new JQGridRow { id = item.TRANSPORT_ID, cell = new string[4] };
                    row.cell[0] = item.TRANSPORT_ID.ToString();
                    row.cell[1] = item.TRANSPORT_NAME;
                    row.cell[2] = item.TRANSPORT_ABBR;
                    row.cell[3] = item.REMARK;
                    rows.Add(row);
                }
                result.rows = rows.ToArray();
                if ((numberOfRows != 0) && (pageIndex != 0) && (totalRecords != 0))
                {
                    result.Page = pageIndex;
                    result.Total = (totalRecords + numberOfRows - 1) / numberOfRows;
                    result.Records = totalRecords;
                }

                return new JavaScriptSerializer().Serialize(result);
            }
}}

とjsコード

  $(function () {
                var grid = $('#list');
                grid.jqGrid({
                    url: 'jQGridHandler.ashx',
                    editurl: 'jQGridHandler.ashx',
                    postData: { ActionPage: 'TransportType', Action: 'Fill' },
                    ajaxGridOptions: { cache: false },

                    datatype: 'json',
                    height: 'auto',
                    colNames: ['TRANSPORT_ID', 'TRANSPORT_NAME', 'TRANSPORT_ABBR', 'REMARK'],
                    colModel: [
                            { name: 'TRANSPORT_ID', index: 'TRANSPORT_ID', key: true, hidden: true, editable: false },
                            { name: 'TRANSPORT_NAME', width: 200, sortable: true, editable: true },
                            { name: 'TRANSPORT_ABBR', width: 100, sortable: true, editable: true },
                            { name: 'REMARK', width: 100, sortable: true, editable: true }
                           ],
                    rowNum: 10,
                    rowList: [10, 20, 30],
                    pager: '#pager',
                    prmNames: { nd: null },
                    gridview: true,
                    sortname: 'TRANSPORT_ID',
                    viewrecords: true,
                    caption: '',
                    rownumbers: true

                });

jqgrid ロード データ セットの現在のページが 0 で、アイコンが次にあり、特権が有効になっている場合。私を助けてください。皆さんありがとう

4

1 に答える 1

1

ページ番号の問題は簡単に解決できます。クラスJQGridResultsにはプロパティPage、、、およびがありますがTotal、jqGridが待機するデフォルトの名前は、、、およびです。したがって、正しく読み取られるプロパティはこれだけです。Recordsrowspagetotalrecordsrowsrows

この問題を修正するには、のプロパティの名前を変更するかJQGridResults、jqGridに次の追加パラメータを含めます。

jsonReader: {page: "Page", total: "Total", records: "Records"}

jqGridとASHXハンドラーの使用法に関する追加情報(完全に機能するVisual Studioデモプロジェクトを含む)は、回答に記載されています。

于 2012-06-14T18:30:09.563 に答える