2009-11-24 47 views
10

Có thể sử dụng phương thức getRowData để truy xuất hiện tại của ô nhưng điều này truy xuất nội dung ô hiện tại thay vì dữ liệu gốc trước khi đi qua trình định dạng.Lấy dữ liệu hàng gốc từ jqGrid

Làm cách nào để truy xuất nội dung gốc trước khi áp dụng các biến đổi định dạng? FYI Tôi đang điền bảng bằng JSON.

Trả lời

12

Tôi phải tìm tài liệu một chút để tìm ra giải pháp, để xem nó trong ngữ cảnh ban đầu của nó ở đây: jqGrid Data Manipulation, cụ thể phần gần cuối có tiêu đề "Dữ liệu người dùng".

Thứ nhất, sửa đổi thực hiện jsonReader của bạn như sau:

jsonReader: { 
     root: 'Data', 
     page: 'Page', 
     total: 'Total', 
     records: 'Records', 
     userdata : 'Data', 
     repeatitems: false, 
     id: 'Id' 
} 

Lưu ý tùy chọn userdata thiết lập để giống như root 'dữ liệu'

Trong trường hợp của tôi, tôi cần thiết để lấy dữ liệu hàng ban đầu khi người dùng đã chọn một hàng. Tôi thực hiện điều này như sau:

onSelectRow: function(rowid) { 
        processRow(rowid); 
       } 

Để lấy dữ liệu trong phương pháp xử lý hàng tôi có như sau:

var rowData = $("#resultGrid").getGridParam('userData')[rowId - 1]; 

đâu #resultGrid là một tham chiếu đến jqGrid tôi.

Điều này sau đó sẽ trả lại dữ liệu ban đầu được liên kết với hàng đó trước khi bất kỳ định dạng nào được áp dụng.

Một vài điểm cần lưu ý:

  1. Trong trường hợp của tôi lưới được paged nên tập kết quả là không bao giờ lớn hơn 10 mặt hàng do đó 'userdata' sẽ không phát triển quá lớn
  2. Phân loại được thực hiện máy chủ bên để index rowId sẽ luôn luôn trả về giá trị đúng từ 'userData'
  3. trong khi 'userdata' như tham chiếu như là một tùy chọn trên jsonReader là tất cả những trường hợp thấp hơn, để lấy nó bằng cách sử getGridParam bạn không cần phải tham khảo nó như 'userData'
+3

+1 Bây giờ bạn cần giá trị gốc và giá trị userdata thành "hàng", không phải là "Dữ liệu", nhưng khác hơn là giá trị hoạt động tuyệt vời với phiên bản mới nhất. – Justin

-5

Đây là cách truy xuất dữ liệu ô từ một hàng.

var rowData = jQuery(this).getRowData(rowId); 
var colData = rowData['columnName']); 

columnName là tên cột của bảng.

+3

Điều này nhận được nội dung - không phải là giá trị; – Dan

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