2012-06-14 6 views
0

я стартер в jqgrid, я пишу этот код для создания и заполнения jqgrid (я использовать репозиторий Pattrn в asp.net)Как ориентироваться в jqgrid

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, а значок next и конфиденциальность включены. пожалуйста помогите. спасибо

ответ

1

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

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

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

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

+0

благодарит господина Олега, очень спасибо – Pouya

+0

@MohsenBahrzadeh: Добро пожаловать! – Oleg