Tôi có lưới kendo trên trang web của mình và tôi đang cố gắng lưu các bộ lọc lưới bằng cách sử dụng sessionStorage
và điều này đang hoạt động cho phần lớn.Kendo - lưu các bộ lọc lưới thông qua mã trên trang chỉ có vấn đề với các cột lưới lọc ngày
Vấn đề tôi gặp phải là khi tôi đặt bộ lọc vào cột ngày, khi tôi cố gắng áp dụng lại bộ lọc đó khi người dùng điều hướng trở lại trang đó, nó sẽ bị lỗi ở một trong các chức năng ẩn danh b/c phương thức toLowerCase()
không tồn tại. Bộ lọc hoạt động tốt nếu tôi lọc trên cột chuỗi. Tôi có thể áp dụng nhiều bộ lọc và lưu chúng vào một biến số sessionStorage
và áp dụng lại cho lưới vừa tốt. Chỉ với các cột ngày tôi có vấn đề.
Tôi đã mất một thời gian để tìm ra cách để có được những lưới kendo lọc bằng cách sử dụng cú pháp:
var theKgridFilters = $("#gridList").data("kendoGrid").dataSource.filter();
Sau đó để lưu trữ nó trong một var sessionStorage
, tôi đã phải stringify()
đối tượng hoặc nếu không nó sẽ không tổ chức các bộ lọc lưới trong var rằng:
sessionStorage.setItem('theGridFilters', JSON.stringify(theKgridFilters));
Tiếp theo, để áp dụng lại bộ lọc trên lưới, tôi đã phải chuyển đổi chuỗi lại một đối tượng JSON b/c bộ lọc là một đối tượng với các thuộc tính, vì vậy tôi sử dụng điều này:
if (sessionStorage.theGridFilters) {
gridFilter = sessionStorage.theGridFilters;
gridFilter = $.parseJSON(gridFilter);
}
nào được áp dụng cho các thuộc tính lưới lọc dataSource:
filter: gridFilter,
Khi tôi lọc lưới trên một cột ngày, lỗi ném trên đường dây này dưới đây:
function anonymous(d, __f, __o) {
return (d.Last_Modified_Date.toLowerCase() == '2013-01-25t06:00:00.000z')
}
Trường hợp trường có bộ lọc là Last_Modified_Date
. Tôi khá mới để làm việc với jQuery, JS, vv, và từ những gì tôi đã đọc, các fns vô danh() được tạo ra trên bay, vì vậy tôi không tin rằng tôi có thể thay đổi điều này.
Tôi đã kiểm tra trực tuyến và ai đó đã đề cập thêm toString()
chức năng trước toLowerCase()
. Tôi đã thử nó trong trình gỡ lỗi và nó đã làm việc nhưng tôi không chắc chắn làm thế nào để truy cập thông qua mã để thực hiện thay đổi đó. Có vẻ như hàm nặc danh được gọi từ tệp kendo.web.js dựa trên ngăn xếp cuộc gọi của trình gỡ lỗi IE.
Ngoài ra, giá trị của các trường ngày trong trình gỡ lỗi được hiển thị dưới đây:
d.Last_Modified_Date Wed Jan 25 00:00:00 CST 2013 Object, (Date)
Vì vậy, tôi thậm chí không chắc chắn nếu nó có thể đánh đồng mà giá trị cho chuỗi trong fn giấu tên ở trên, đó là : '2013-01-25t06:00:00.000z'
.
Hãy cho tôi biết nếu có ai có bất kỳ thông tin chi tiết nào để tránh xung quanh bộ lọc ngày này, hãy lưu sự cố. Nó khiến tôi như phát điên. Có thể có một cách khác mà tôi không biết để lưu các bộ lọc lưới.
Xin cảm ơn trước, Bruce!
như thế nào LAST_MODIFIED_DATE định nghĩa trong 'schema.model'? Bạn đã định nghĩa nó là 'date' chưa? – OnaBai
Xin chào OnaBai, vâng, nó được định nghĩa là ngày: Last_Modified_Date: {type: "date", editable: false}, –
Cảm ơn vì đã cho tôi ý tưởng sử dụng sessionStorage. – friend