2014-10-07 35 views
0

我在處理Kendo Grid時有以下2個簡單要求。如果找不到匹配的可過濾記錄,需要顯示相應的消息

  1. 如果沒有本作的底層數據源的記錄,然後在UI顯示: No records found. Please add New record using Add New button.

  2. 如果發現記錄存在,但對任何一列過濾器的用戶點擊,並沒有符合條件的記錄,然後顯示在用戶界面: No matching records found for the given search criteria.

我已經完成了使用Grid的OnDataBound()方法第一任務。我只是驗證數據源長度並在UI中顯示適當的消息。

請幫我實現第二種選擇。因爲這兩種情況都是Grid的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

您可以查詢網格的dataSource的過濾器屬性。未定義過濾器時將爲undefined,或者添加了過濾器但已全部刪除時將爲null

所以,基本上你的第二個選擇是像這樣或這樣的臺詞:

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

想法是好的,但如果根本什麼數據爲空並且用戶嘗試在其上應用過濾器?此時上述條件將保持爲真並顯示消息「找不到匹配的記錄!!!」 – 2014-10-07 19:25:31

相關問題