在处理Kendo Grid时,我有以下两个简单的要求。
如果基础数据源没有记录,则显示在UI中:
No records found. Please add New record using Add New button.
如果记录存在但用户点击任何列Filter,并且找不到匹配的记录,则显示在UI中:
No matching records found for the given search criteria.
我使用Grid的OnDataBound()
方法完成了第一项任务。我只是验证数据源长度并在UI中显示相应的消息。
请帮助我实现第二个选项。因为两种情况都是网格datasource length is 0 (zero)
。
答案 0 :(得分:1)
您可以查询网格的dataSource的过滤器属性。如果未定义过滤器,则会undefined
;如果已添加过滤器,则会null
,但所有过滤器都已删除。
所以,基本上你的第二个选择就是这样或类似的:
var grid = $("grid").data("kendoGrid");
if ((grid.dataSource.filter() != null) && (dataSource length is 0))
{
//Display No matching records found....
}
答案 1 :(得分:0)
最后,我得到了线索:
function onDataBound(e) {
var filter = dataSource.filter();
var message;
if (this.dataSource._total === 0) {
if (filter && filter.filters.length) {
message = "No matching records found for the given search criteria.";
} else {
message = "No records found. Please add New record using Add New button.";
}
}