2012-06-14 2 views
0

에서 탐색하는 방법, 내가내가있는 jqGrid에서 선발 해요있는 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 

       }); 
(내가 asp.net에서 사용 저장소 pattrn 해요) 생성 및 채우기있는 jqGrid이 코드를 작성

jqgrid로드 데이터 세트 현재 페이지가 0이고 아이콘 next 및 privice가 활성화 된 경우. 도와주세요. 모두 고마워요

답변

1

페이지 번호의 문제는 쉽게 해결할 수 있습니다. 클래스 JQGridResultspage, total, recordsrows입니다 위해있는 jqGrid 대기 특성 Page, Total, Recordsrows하지만, 기본 이름이 있습니다. 따라서 rows은 올바르게 읽힐 수있는 유일한 속성입니다.

JQGridResults에서 속성의 이름을 변경 당신도 할 수있는 문제를 해결하거나있는 jqGrid에서 다음과 같은 추가 매개 변수를 포함 시키려면 : 함께

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

더 자세한 내용은 (포함하는 전체 작업 비주얼 스튜디오 demo project)있는 jqGrid의 사용에 대한을 ASHX 핸들러는 the answer에서 찾을 수 있습니다.

+0

감사합니다 Mr Oleg, 매우 감사합니다 – Pouya

+0

@MohsenBahrzadeh : 안녕하세요. – Oleg