我有一组 ComboBoxes,其项目来自同一个 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...")
.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" ) );
} )
)
变量 p 和 f[x] 是来自我正在运行的几个 foreach 循环的字符串。当我遍历这些循环时,我的意图是不理会 DataSource,除非 f[0] == "F1" 和 p != "P1" 的情况。
我的两个函数如下所示:
function NoFilter() { }
function SetFilter( e ) {
var $filter = new Array();
$filter.push({ field: "Name", operator: "startswith", value: "O" });
e.sender.filter({ logic: "or", filters: $filter });
}
总共,我有十二个组合框要加载,其中两个适合我的例外。当编辑器出现时,所有组合框在加载时都会短暂显示等待指示器。这一切都很好,除了我的两个异常的等待指示器永远不会消失,即使过滤器是按我的意愿应用的。
我错过了什么让等待指示器运行?