2011-11-18 43 views
0

我有全站搜索,我把搜索结果放到几个Rad网格中。当网格中没有行时,我隐藏网格。我有一个特殊情况,当用户应用列筛选器并且没有结果时,我不想隐藏网格。我希望用户能够修改列过滤器,尽管没有结果。我当前的代码隐藏了网格,并且不允许用户修改列过滤器。如何在使用Telerik Rad Grid时知道何时使用过滤器?

有没有办法从客户端知道何时在RadGrid上应用滤镜?

我的客户端代码如下所示:

function OnClientDataBound(sender, args) { 
      toggleLoadingPanel(sender.get_id(), false); 

      var grid = $find(sender.ClientID); 
      var masterTable = grid.get_masterTableView(); 
      var rows = masterTable.get_dataItems(); 

      // I want to be able to determine if the grid has filters applied here 
      // so that I don't hide it in this case. 

      if (rows == 0) { 
       var words = sender.ClientID.split("_"); 
       var divName = "#div" + words[words.length-1]; 
       jQuery(divName).hide(); 
      } 

     } 

回答

2

服务器端(以防万一,你可能会发现它很有用):

如果你有一个Column对象,那么你可以使用CurrentFilterFunctionCurrentFilterValue得到/设置该列的过滤器。

如果你想检查一气呵成整个电网,那么你可以使用yourRadGridObject.MasterTableView.FilterExpression

客户端:

get_filterExpressions()

+0

我补充说:VAR filterExpressions = sender.get_masterTableView()get_filterExpressions() .toOql(); if(rows == 0 && filterExpressions.length == 0)并且工作得很好。谢谢。 – Rodney

相关问题