Kendo ui 剑道UI组合框数据源RequestEnd事件
我有一组组合框,它们的项来自同一个DataSource.Read事件。在某些情况下,我希望筛选项目。我的组合框如下所示:Kendo ui 剑道UI组合框数据源RequestEnd事件,kendo-ui,kendo-combobox,Kendo Ui,Kendo Combobox,我有一组组合框,它们的项来自同一个DataSource.Read事件。在某些情况下,我希望筛选项目。我的组合框如下所示: @(Html.Kendo().ComboBox() .HtmlAttributes(new { style = "font-size:10px; background-color: #f4f4f4;" }) .Name(string.Format( "{0}{1}", p, f[0] ) ) .Placeholder("Choose a value..
@(Html.Kendo().ComboBox()
.HtmlAttributes(new { style = "font-size:10px; background-color: #f4f4f4;" })
.Name(string.Format( "{0}{1}", p, f[0] ) )
.Placeholder("Choose a value...")
.DataTextField("Name")
.DataValueField("Value")
.DataSource( source =>
{
source.Read( read => read.Action( "MyMethod", "MyController", new { _type = f[2] } ) )
.Events( e => e.RequestEnd( f[0] == "F1" && p != "P1" ? "SetFilter" : "NoFilter" ) );
} )
)
function NoFilter() { }
function SetFilter( e ) {
var $filter = new Array();
$filter.push({ field: "Name", operator: "startswith", value: "O" });
e.sender.filter({ logic: "or", filters: $filter });
}
变量p和f[x]是我正在运行的几个foreach循环中的字符串。当我运行这些循环时,我的意图是不使用数据源,除非f[0]=“F1”和p!=“P1”
我的两个函数如下所示:
@(Html.Kendo().ComboBox()
.HtmlAttributes(new { style = "font-size:10px; background-color: #f4f4f4;" })
.Name(string.Format( "{0}{1}", p, f[0] ) )
.Placeholder("Choose a value...")
.DataTextField("Name")
.DataValueField("Value")
.DataSource( source =>
{
source.Read( read => read.Action( "MyMethod", "MyController", new { _type = f[2] } ) )
.Events( e => e.RequestEnd( f[0] == "F1" && p != "P1" ? "SetFilter" : "NoFilter" ) );
} )
)
function NoFilter() { }
function SetFilter( e ) {
var $filter = new Array();
$filter.push({ field: "Name", operator: "startswith", value: "O" });
e.sender.filter({ logic: "or", filters: $filter });
}
总共有12个组合框正在加载,其中两个适合我的异常。当编辑器出现时,所有组合框在加载时都会短暂显示等待指示器。这一切都很好,除了我的两个异常的等待指示器永远不会消失,即使我希望应用过滤器
让等待指示器保持运行的原因是什么?似乎您正在递归调用服务器,因为您正在读取数据后设置过滤器。将筛选器设置为数据源将再次使用筛选器调用read方法。这意味着它将再次调用
RequestEnd
方法(永不结束)
相反,在创建网格后尝试设置过滤器 浏览器控制台中是否有错误?有。脚本28:堆栈空间不足,jquery.min.js,第3行字符6327。