当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 }
}
帮助表示赞赏。
谢谢。
答案 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()
}
}
感谢大家,并感谢您的回答/评论。
快乐编码