2010-07-17 43 views

Trả lời

10

Nếu bạn đặt datatype thành 'local', dữ liệu từ máy chủ sẽ không được tải. Để buộc tải dữ liệu, bạn có thể thay đổi datatype thành 'json' hoặc 'xml' theo phương pháp setGridParam (xem http://www.trirand.com/jqgridwiki/doku.php?id=wiki:optionshttp://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods#grid_related_methods) và sau đó gọi phương thức trigger("reloadGrid").

Xem jqGrid is not loading data cũng có thông tin bạn đã hỏi.

+0

+1 lật kiểu dữ liệu hoạt động hoàn hảo. cảm ơn! – ongle

2

Chỉ cần không đặt URL mặc định trong bảng. Và cài đặt nó chỉ khi bạn cần tải dữ liệu (ví dụ bằng cách nhấn một nút) và sau đó .trigger("reloadGrid").

Ví dụ cho bạn:

jQuery("#grid").jqGrid(
     { 
      //Simply comment out the URL 
      //url    :"salepointsprovider.php", 
      datatype:"json", 
      colModel  :[ 
       {name:'SalePointId', index:'SalePointId'}, 
       {name:'Name', index:'Name'} 
      ] 
     } 

$('#ShowRecordsButton').click(function() { 
      jQuery("#grid").jqGrid('setGridParam', 
      {url:"salepointprovider.php?SalePointId=" + argSalePointId, page:1}); 
      jQuery("#grid").trigger('reloadGrid'); 
     } 
0

lưới của tôi mà không url gửi yêu cầu đến máy chủ:

.../_ tìm kiếm = false & nd = 1370817124473 & rows = 20 & page = 1 & sidx = & sord = asc

Đặt kiểu dữ liệu: "cục bộ" giải quyết sự cố. Nạp lưới bởi

 
`function reloadGrid(gridId, gridData){ 
    $(gridId).jqGrid('clearGridData'); // need for nonempty grig (see http://www.trirand.com/blog/?page_id=393/help/triggerreloadgrid-not-work/) 
    $(gridId).jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid'); 
} 
`

Không cần phải thay đổi kiểu dữ liệu (ít nhất là đối với trường hợp json của tôi nó được công nhận)

0

Trong TreeGrid bạn không thể sử dụng datatype = 'địa phương'. Vì vậy, thay vì 'cục bộ', tôi đặt datatype = 'jsonstring', xác định dữ liệu giả rỗng và jsonReader. jsonReader nên được định nghĩa đúng theo dữ liệu đã truy xuất của bạn. Cảm ơn Oleg's answer. Và, khi tôi cần tải dữ liệu, tôi chỉ cần thay đổi kiểu dữ liệu thành 'json'.

var fakeData ={ 
    rows: [] 
}; 
... 
datatype: 'jsonstring', 
datastr: fakeData, 
... 
jsonReader: { 
    repeatitems: false, 
    root: function (obj) { return obj.rows; }, 
    page: function (obj) { return 1; }, 
    total: function (obj) { return 1; }, 
    records: function (obj) { return obj.length; } 
} 
+0

Đây không phải là câu trả lời cho câu hỏi. –

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