Làm cách nào để lấy đối tượng hàng trên hàng được chọn trong jqGrid? Tôi cần đối tượng thực tế, không phải là giá trị ô. Tôi đã đi qua các tài liệu hướng dẫn nhưng không thể tìm thấy một phương pháp mà sẽ cho tôi đối tượng hàng. vì tôi sử dụng các trình định dạng tùy chỉnh, cellValue sẽ không hoạt động.jqGrid Row Object trong onSelectRow
Trả lời
Nếu bạn triển khai custom formatter và muốn nhận giá trị ô tương ứng với getCell hoặc getRowData, bạn phải triển khai chức năng unformat.
Không rõ ý bạn là gì dưới "Tôi cần đối tượng thực tế, không phải giá trị ô". Nó cũng không rõ ràng mà datatype
bạn sử dụng, cho dù bạn sử dụng tùy chọn loadonce: true
hay không và nếu bạn tải dữ liệu từ máy chủ trong đó định dạng dữ liệu sẽ được đăng lên máy chủ.
Nếu bạn sử dụng datatype: 'local'
hoặc sử dụng loadonce: true
thông số nội bộ data
và _index
sẽ được lấp đầy. Để có được dữ liệu thô từ lưới điện bằng cách rowid
bạn có thể sử dụng
var rowData = this.p.data[this.p._index[rowid]]
hoặc
var grid = $(this),
localdata = grid.jqGrid('getGridParam', 'data'),
indexes = grid.jqGrid('getGridParam', '_index'),
rowData = localdata[indexes[rowid]];
Nếu bạn không sử dụng hoặc sử dụng datatype: 'local'
loadonce: true
và tải dữ liệu từ máy chủ duy nhất bạn có thể lưu các đối tượng đại diện cho dữ liệu từ phản hồi của máy chủ trong một biến (trong một đối tượng). Trình xử lý sự kiện loadComplete
có một tham số data
là dữ liệu thô được đăng từ máy chủ. Vì vậy, bạn có thể lưu dữ liệu mà bạn cần trong một đối tượng (trong một bản đồ mà sẽ nhận được đối tượng yut bởi rowid) và sử dụng nó bên trong xử lý sự kiện onSelectRow
.
Bạn có thể sử dụng getInd và getLocalRow phương pháp:
onSelectRow: function(rowid) {
var row = $(this).getLocalRow(rowid);
// do something with row
}
trong dự án của tôi:
ondblClickRow : function(rowid,iRow,iCol,e) {
$($("#completeDetail").getInd(rowid,true)).find(":first").click();
}
này sẽ giải quyết hàng tăng không tìm thấy tìm kiếm hàng
sử dụng chức năng này ->getInd(rowid,rowcontent)
.
Phương thức này trả về chỉ mục của hàng trong bảng lưới được chỉ định bởi id=rowid
khi rowcontent được đặt thành false (mặc định). Nếu rowcontent được đặt thành true, nó trả về đối tượng hàng nhập. Nếu không thể tìm thấy rowid, hàm trả về false.
- 1. JQGrid Programatically Chọn Grid Row
- 2. Làm thế nào để có được dữ liệu Row chọn trong jqGrid
- 3. ExtJS Lưới Xóa Row - Bắt chọn Row
- 4. JQgrid đặt chiều cao hàng
- 5. Cách xóa các hàng trong jqgrid
- 6. Đóng băng DataGrid Row
- 7. Slick select row by id
- 8. WPF Datagrid Row Validation
- 9. ROW NUMBER() OVER
- 10. Mysql 1 Random Row
- 11. Cột ẩn trong jqGrid
- 12. xác thực trong jqgrid
- 13. Cột Wordwrap trong JQGrid
- 14. Đặt trang trong jqgrid
- 15. Slice Pandas DataFrame by Row
- 16. Bộ chọn ngày trong jqGrid, ví dụ đơn giản?
- 17. Thêm một trình xử lý sự kiện vào jqGrid sau khi instantiation
- 18. New {object} vs {object} = new {object}
- 19. jqGrid số định dạng sử dụng
- 20. Tắt phân loại trong jqGrid
- 21. cột hình ảnh trong jqGrid?
- 22. Cách đọc userData trong jqgrid?
- 23. jqGrid lọc
- 24. jqGrid cách bạn lặp qua lưới?
- 25. python threadsafe object object cache
- 26. JSON trả về [object Object]
- 27. Object Specifiers trong Javascript
- 28. Object trong Scala
- 29. Object :: private và Object :: public trong Ruby là gì?
- 30. DataTable - foreach Row, EXCEPT FIRST ONE
Cảm ơn vì điều này, nó đã chỉ cho tôi đúng hướng – SystemParadox
@SystemParadox: Bạn được hoan nghênh! Tôi khuyên bạn nên kiểm tra thêm phương thức 'getLocalRow'. Xem [câu trả lời] (http://stackoverflow.com/a/9145342/315935) hoặc [một số khác] (http://stackoverflow.com/a/10362294/315935) để biết một số ví dụ mã nhỏ và thông tin bổ sung. [Mã nguồn] (https://github.com/tonytomov/jqGrid/blob/v4.3.2/js/grid.base.js#L3494-3505) của phương pháp này rất nhỏ và tôi khuyên bạn nên đọc nó . – Oleg
Tôi phải thừa nhận, tôi luôn luôn bỏ qua nó, nhưng việc lưu trữ dữ liệu để sử dụng sau này trên loadComplete là một chức năng rất có giá trị. Vì tôi không bao giờ sử dụng datatype: 'local' hoặc loadonce: true. Tôi thậm chí tự hỏi tại sao nó không được lưu trữ theo mặc định trong một số loại thuộc tính 'rawdata'. Dù sao cảm ơn đã chỉ nó ra Oleg. +1 – Steven