如果找不到匹配的可筛选记录,则需要显示相应的消息

本文关键字:显示 消息 记录 找不到 如果 筛选 | 更新日期: 2023-09-27 18:25:47

在处理Kendo Grid时,我有以下两个简单的需求。

  1. 如果底层数据源没有记录,则在UI中显示:No records found. Please add New record using Add New button.

  2. 如果存在记录,但用户单击任意列"筛选",并且未找到匹配的记录,则在UI中显示:No matching records found for the given search criteria.

我已经使用Grid的OnDataBound()方法完成了第一个任务。我只是在验证数据源的长度,并在UI中显示适当的消息。

请帮我完成第二个选项。因为网格的datasource length is 0 (zero)

如果找不到匹配的可筛选记录,则需要显示相应的消息

您可以查询网格的dataSource的filter属性。如果未定义过滤器,则为undefined;如果已添加过滤器但已删除所有过滤器,则将为null

所以,基本上,你的第二个选择是这样或类似的:

var grid = $("grid").data("kendoGrid");
if ((grid.dataSource.filter() != null) && (dataSource length is 0))
{
    //Display No matching records found....
}

最后,我得到了线索:

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.";
        }
    }