Как перемещаться в jqgrid

я новичок в 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, а значок рядом и привилегия включена. пожалуйста, помогите мне. Спасибо всем


person Pouya    schedule 14.06.2012    source источник


Ответы (1)


Проблема с номером страницы может быть легко решена. Класс JQGridResults имеет свойства Page, Total, Records и rows, но именами по умолчанию, которых ожидает jqGrid, являются page, total, records и rows. Таким образом, rows - единственное свойство, которое будет правильно прочитано.

Чтобы решить эту проблему, вы можете либо переименовать свойство в JQGridResults, либо включить следующий дополнительный параметр в jqGrid:

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

Дополнительная дополнительная информация (включая полную рабочую версию Visual Studio демонстрационного проекта) о использование jqGrid вместе с обработчиком ASHX вы можете найти в ответе.

person Oleg    schedule 14.06.2012