2014-10-07 4 views
0

У меня есть следующие два простых требования при работе с сеткой Kendo.Необходимо показать соответствующее сообщение, если не найдено подходящих фильтруемых записей

  1. Если нет записей, присутствующих для базового источника данных затем отобразить в пользовательском интерфейсе: No records found. Please add New record using Add New button.

  2. Если найдены записи присутствуют, но на пользователь нажимает на любой колонку фильтре, а совпадающие записи затем отобразить в Пользовательский интерфейс: No matching records found for the given search criteria.

Я выполнил 1-й задачи с использованием OnDataBound() сеточного метода в. Я просто проверяю длину источника данных и отображаю соответствующее сообщение в пользовательском интерфейсе.

Пожалуйста, помогите мне в достижении второго варианта. Потому что оба корпуса Grid's datasource length is 0 (zero).

ответ

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

Вы можете запросить свойство фильтра данных источника данных сетки. Он будет undefined, если фильтр не определен или null, когда были добавлены фильтры, но все были удалены.

Таким образом, в основном ваш второй вариант был бы что-то подобное или на линиях этого:

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

Идея хороша, но что, если лежащий в основе данные пусты, и пользователь пытается применить к нему фильтр? На этот раз выше условия будут удерживать True и отображать сообщение «Не найдено совпадающих записей !!!» –

Смежные вопросы