同じ DataSource.Read イベントからアイテムが取得される ComboBoxes のセットがあります。場合によっては、アイテムをフィルタリングしたい。私の ComboBox は次のようになります。
@(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 ループのカップルからの文字列です。これらのループを実行するとき、私の意図は、f[0] == "F1" および p != "P1" の場合を除いて、DataSources をそのままにしておくことです。
私の2つの関数は次のようになります。
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 個のコンボ ボックスをロードしていますが、そのうちの 2 個は私の例外に該当します。エディターが起動すると、すべてのコンボ ボックスがロード中に一時的に待機インジケーターを表示します。これはすべてうまく機能しますが、フィルターが希望どおりに適用されても、2 つの例外の待機インジケーターが消えることはありません。
待機インジケーターを実行したままにしている何が欠けていますか?