2013-07-19 28 views
6

Tôi cần phải chọn một hàng cụ thể trong kendoGrid nhưng KHÔNG bằng dữ liệu-uid (vì dữ liệu-uid được thay đổi khi lưới dữ liệu được nạp lại) nhưng do mục hàngID. Tôi thấy bài viết nhưng họ chỉ chọn hàng bằng uid mà không phải là thứ tôi cần, tôi thực sự cần phải khởi động lại ứng dụng HTML5 và khi lưới được tải, một mục cụ thể sẽ được chọn. Đây là những gì tôi đã nhìn thấyCách chọn hàng trong lưới kendo theo ID mục dữ liệu?

Demo: jsfiddle.net/rusev/qvKRk/3/

ví dụ: đối tượng có OrderID as ID và mỗi khi lưới được tải, nó sẽ giống nhau, không giống như uid, tôi muốn biết làm cách nào để tôi có thể chọn một hàng với OrderID, thay vì uid.

Trả lời

0

một công việc mà tôi quản lý, đã đi qua tất cả các hàng và kiểm tra xem mô hình hàng nào có ID đó bằng tham số và sau đó nhận dữ liệu hàng đó và chọn mục thông qua dữ liệu-uid. Nó làm việc tốt cho tôi, vì không có gợi ý, đó là câu trả lời tốt hơn cho bây giờ.

+0

mã ở đâu? – BorHunter

+0

@RuiMartins cung cấp câu trả lời đầy đủ và ngắn gọn với mã ví dụ. Nếu bạn chọn qua các diễn đàn Telerik, thông tin tương tự cũng có sẵn ở đó. Không cần phải đi qua tất cả các hàng dữ liệu. Giả sử bạn sử dụng một mô hình, phương thức 'dataSource.get (OrderID)' sẽ trả về mục dữ liệu: ID của mô hình có sẵn từ trường 'id'; UID của phần tử hàng có sẵn từ trường 'uid'. Sử dụng thuộc tính 'data-uid' để lấy phần tử hàng. – Suncat2000

16

Bạn cam trộn mục hàngID và data.uid, tôi đoán vậy.

var grid = $("#Grid").data("kendoGrid"); 
var dataItem = $("#Grid").data("kendoGrid").dataSource.get(itemID); 
var row = $("#Grid").data("kendoGrid").tbody.find("tr[data-uid='" + dataItem.uid + "']"); 
+0

Câu trả lời ngắn gọn. Làm tốt. – Suncat2000

+0

Vẫn không có cách nào khác dễ dàng? –

0

Đi cùng với những gì umais đã đề cập, phương pháp tốt hơn, vì không có được xây dựng trong chức năng này như được nêu ra, sẽ được lặp qua tất cả các hồ sơ để tìm ra cái bạn cần. Chức năng mà tôi đã xây dựng sẽ hoạt động ngay cả khi có các trang dữ liệu. Cách duy nhất khác mà tôi có thể nghĩ đến khi làm việc này là thực hiện cuộc gọi ajax thứ cấp; Nhưng điều này hoạt động tốt. Lưu ý rằng tôi đã không thử nghiệm nó với hơn 2000 hồ sơ.

var dataGrid = $("#GATIPS").data("kendoGrid").dataSource; 
    var numOfRows = dataGrid.total(); 
    var currentPageSize = dataGrid.pageSize(); 
    dataGrid.pageSize(numOfRows); 
    var dataGridData = dataGrid.data(); 
    for (var i = 0; i < numOfRows; i++) { 
     if (dataGridData[i].uid == e) 
      return dataGridData[i]; 
    } 
    dataGrid.pageSize(currentPageSize); // reset the view 

e là UID. Tuy nhiên điều này có thể được thay thế cho những gì bao giờ biến bạn cần chỉ cần thay thế kiểm tra.

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