如果e.filter为空(HTML Razor语法),如何停止对控制器的读取调用

时间:2018-12-28 19:26:28

标签: jquery kendo-ui kendo-grid kendo-asp.net-mvc

当Kendo Grid开发(使用HTML Razor语法,MVC,Jquery和JavaScript)时,如果我的过滤器为空,我不想调用控制器或读取数据。我该怎么做? 这是我的代码片段 剃刀代码段-

 Read(read => read.Action("Action", "Controller").Data("getFilters"))

JSCode

 getFilters= function (e) 
{
 if (e.filter  === null)
	//do nothing and stop
 else 
	return { filters }
}

帮助表示赞赏。

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以在数据源的RequestStart事件中停止请求:

function requestStart(e) {
    if (!this.filter()) {
        e.preventDefault();
    }
}

您可能希望扩展此代码段,以通知用户由于过滤器为空而未加载新数据。否则,用户可能会感到困惑,如果他提交一个空的过滤器,为什么结果没有改变。

答案 1 :(得分:0)

这是我的做法

为过滤器添加了事件

Filter("onFiltering")

JS代码

function onFiltering()
{
     if (e.filter === null)
      {
       e.preventDefault();
       //display pop up for confirmation that no filters are applied and user still want to continue please select Yes
       //if Yes then 
       
       $("#Grid").data("kendoGrid").dataSource.read()
       
      }
  }

感谢大家,并感谢您的回答/评论。

快乐编码