2013-07-29 38 views

Trả lời

39

thử mã sau.

$("#Grid").data('kendoGrid').dataSource.data([]); 

cho bản demo nhấp chuột here

+0

Điều này có vấn đề @PaulGorbas đề cập đến [câu trả lời của anh ấy] (http://stackoverflow.com/a/40941272/298278). Cập nhật câu trả lời trong câu trả lời để chứng minh [vấn đề] (http://jsfiddle.net/fsvSE/115/). Nếu bạn loại bỏ tất cả các hàng, sau đó bấm vào tiêu đề cột để sắp xếp dữ liệu trở lại. – Windle

4

Nếu bạn đang làm việc với Angualrjs, sau đó cố gắng làm theo mã này:

$scope.gridData.data([]); 

đâu gridDatak-data-source="gridData"

+0

$ scope.gridId.dataSource.data ([]); làm việc cho tôi. – jaycer

3

Điều đó không thực sự di chuyển dữ liệu cơ bản của lưới, nó chỉ xóa các hàng đang được hiển thị. Nếu bạn sắp xếp lưới "trống", tất cả các hàng sẽ xuất hiện lại dưới dạng dữ liệu cơ bản.

Nếu thay vì loại bỏ dữ liệu của bạn như thể hiện như thế này:

dataSource.data([]); 

và thay vào đó thay thế nó bằng một mảng dữ liệu mới, nói gọi result.Data .. như thế này:

dataSource.data(result.Data) 

bạn sẽ thấy trao đổi dữ liệu, nhưng nếu sắp xếp hoặc trang, một lần nữa dữ liệu gốc được hiển thị.

Bất cứ ai cũng biết làm thế nào để thực sự thay đổi dữ liệu và có các dữ liệu mới thay thế các nguồn dữ liệu của lưới điện?

UPDATE: Câu trả lời là để CŨNG sử dụng phương pháp setDataSource:

var grid = $("#grid").data("kendoGrid"); 
var dataSource = grid.dataSource; 
dataSource.data([]);//clear out old data 
dataSource.data(result.Data);//add new data 
grid.setDataSource(result.Data);//set the new data as the grids new datasource 
dataSource.sync();//refresh grid 
1

này làm việc tốt cho tôi.

var grid = $("#Grid").data("kendoGrid"); 
var newDataSource = new kendo.data.DataSource({ 
    data: [] 
}); 
grid.setDataSource(newDataSource); 
Các vấn đề liên quan