2012-01-28 18 views
5

Đây có phải là điều bình thường hoặc tôi thiếu gì đó không?jqGrid chỉ trả lại các bản ghi như được định nghĩa trong rowNum nếu sử dụng loadonce: true

Nếu tôi đặt loadonce: true, lưới của tôi chỉ trả về 5 bản ghi.

Nhưng nếu tôi thay đổi nó để loadonce: false, lưới là nhận được tất cả các hồ sơ

Mã của tôi là dưới đây.

$("#leave-detail-grid").jqGrid({ 
    url:'grid/grid_leave_detail.php', 
    datatype: 'xml', 
    mtype: 'GET', 
    colNames:['Date','Day','Approver','Leave Type','Status','Purpose | Reason'], 
    colModel :[ 
     {name:'start_date', index:'start_date', width:80, editable:false, align:"left", editrules:{required:true}}, 
     {name:'day', index:'day', width:80, editable:false, align:"left", editrules:{required:true}}, 
     {name:'sup', index:'sup', width:130, editable:false, align:"left", editrules:{required:true}}, 
     {name:'desc', index:'desc', width:130, editable:false, align:"left", editrules:{required:true}}, 
     {name:'status', index:'status', width:80, editable:false, align:"center", editrules:{required:true}}, 
     {name:'purpose', index:'purpose', width:180, editable:false, align:"left", editrules:{required:true}}  
    ], 
    height: 'auto', 
    pager: '#leave-detail-pager', 
    pgbuttons: true, 
    pginput: 'Yes', 
    pgtext: 'Yes', 
    rowNum:5, 
    rowList:[20,40,100,200,400], 
    sortname: 'start_date', 
    sortorder: 'asc', 
    loadonce: true, // to enable sorting on client side 
    viewrecords: true, 
    gridview: true, 
    caption: 'Search Purpose' 
}); 
$("#leave-detail-grid").jqGrid('navGrid',"#leave-detail-pager", 
     {edit:false,add:false,del:false,search:true}, 
     {zIndex:5234},{zIndex:5234},{zIndex:5234},{zIndex:5234} 
); 

Trả lời

3

Cảm ơn Jonathan. Làm thế nào mà tôi nhớ rằng bản demo :)

tôi thêm giá trị colModel rowTotal: 2000, -1 không hoạt động, điều này sẽ hiển thị 2000 REC

sau đó thêm bên dưới để mã máy chủ của tôi

$totalrows = isset($_REQUEST['totalrows']) ? $_REQUEST['totalrows']: false; 
if($totalrows) { 
$limit = $totalrows; 
} 

Và để tải tất cả các bản ghi chúng ta cần phải tinh chỉnh mã máy chủ để ghi đè tham số rowTotal.

$result = mysql_query("SELECT COUNT(*) AS count FROM leaveform WHERE emp_id='$emp_id' AND company_id='$company_id'"); 
$row = mysql_fetch_array($result,MYSQL_ASSOC); 
$count = $row['count']; 
$totalrows = $count; 
$limit = $totalrows; 
1

rowNum:5, có nghĩa là lưới sẽ chỉ sử dụng 5 hàng.

loadonce: true có nghĩa là nó sẽ chỉ tải một lần. Nó cũng vô hiệu hóa máy nhắn tin.

Dựa trên cấu hình này, lưới đó sẽ chỉ sử dụng 5 hàng, và vì nó sẽ không tải nữa từ máy chủ, nó sẽ luôn luôn giống nhau 5.

Dưới đây là một liên kết đến Wiki trong đó có mới nhất tùy chọn tài liệu: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options

+0

Cảm ơn. Tôi có hàng ngàn dữ liệu và tôi muốn tải nó một lần, nếu tôi tăng rowNum, kích thước lưới của tôi cũng sẽ tăng lên và nó thực sự xấu xí. Phải có một cách để thao tác ngày trên phía máy khách cho các tập dữ liệu khổng lồ. – genpet

+0

@genpet Đặt hàngNum thành -1 sẽ xóa giới hạn. Sau đó, bật máy nhắn tin và tải tất cả dữ liệu cùng một lúc. Nó sẽ hoạt động tốt. – Jonathan

+0

@genpet Đi tới liên kết này: http: //www.trirand.com/blog/jqgrid/jqgrid.html Sau đó, ở bên trái, cuộn xuống "Mới trong phiên bản 3.7" Tùy chọn thứ hai là "Tải cùng một lúc từ máy chủ". Ví dụ đó dường như cho thấy những gì bạn mô tả. – Jonathan

1

Nếu bạn sử dụng loadonce: true máy chủ phải trả lại tất cả hàng. dữ liệu phải được sắp xếp theo các thông số sortnamesortorder sẽ được gửi tới máy chủ dưới dạng sidxsord.

Trang đầu tiên của dữ liệu được trả về sẽ được hiển thị. Bạn sẽ vẫn có thể sử dụng phân trang cục bộ, sắp xếp và lọc (tìm kiếm) dữ liệu.

Điều quan trọng là phải xác định tham số sorttype để cho phép sắp xếp dữ liệu cục bộ chính xác.

Nếu bạn vẫn gặp sự cố, bạn nên nối thêm câu hỏi của mình với phản hồi XML từ máy chủ. Vì vậy, người đọc khác của câu hỏi của bạn sẽ có thể tái tạo vấn đề.

Nhận xét cuối cùng: bạn sử dụng các giá trị rất lạ cho pginputpgtext tùy chọn của jqGrid. Bạn nên giữ các loại tùy chọn được mô tả trong the documentation.

+0

Cảm ơn. rowTotal là chìa khóa và một chút tinh chỉnh trên mã máy chủ. Cũng xin cảm ơn 'pginput' và 'pgtext' – genpet

+0

@genpet: Máy chủ có thể bỏ qua 'rowTotal' và chỉ trả lại tất cả * bản ghi *. Nó chỉ là một khuyến nghị cho máy chủ, nhưng nó không thực sự quan trọng đối với công việc của jqGrid. Trên trang đầu tiên sẽ hiển thị các hàng 'rowNum' và * phân trang sẽ hoạt động * cùng với' loadonce: true'. Tôi có thể lặp lại, rằng nếu bạn vẫn còn có vấn đề, bạn nên nối thêm câu hỏi của mình với dữ liệu XML mà bạn sử dụng (2-3 trang dữ liệu là đủ). – Oleg

0

{ rowNum: 0 } để thiết lập không có hàng giới hạn ...

Các vấn đề liên quan