2

私の Kendo オートコンプリート コントロールは、Json リストを正常に取得します。残念ながら、MVC コントローラー メソッドを 2 回呼び出し、2 つの候補リストを作成します。重複リストは、最初のリストのすぐ後ろに表示されます。最初の提案リストから値が選択されると、リストは消えますが、重複リストは表示されたままです。以下に示すように、オートコンプリート コントロールのラッパーを使用しています。どのページ スクリプトでもコントロールが参照されていないことを確認しました。コントロールは、cshtml ビューに 1 回追加される部分ビューにあります ( @{ Html.RenderPartial("_AddLineItem"); })。

@(Html.Kendo().AutoComplete()
     .Name("CategorySearch")
     .DataTextField("CategoryName")
     .Filter("contains")
     .DataSource(source =>
     {
         source.Read(read =>
         {
             read.Action("PopulateCategories", "Default");
         })
         .ServerFiltering(false);
    })
)

生成された HTML は提案リストを 2 回表示しますが、関連する入力コントロールは 1 回しか存在しません。次のタグは、生成された HTML に 2 回含まれています (これらは候補リストのタグであり、以下の貼り付けられた HTML から削除された li タグと終了 div タグも含まれています)。

<div class="k-animation-container" style="left: 431.13px; top: 405.69px; width: 511px; height: 206px; overflow: hidden; padding-right: 2px; padding-bottom: 4px; padding-left: 2px; margin-left: -2px; display: none; position: absolute; z-index: 10002;">

ここで何が起こっているか知っている人はいますか?

4

1 に答える 1

0

私が追加したコメントによると、答えは Kendo オートコンプリート コントロールを JQuery UI ダイアログ コントロール内に配置しないことです。ダイアログは、ブラウザでオートコンプリート コントロールを 2 回レンダリングすることを強制します。これは Internet Explorer と Firefox の両方で確認済みです。他のブラウザーでも同じ動作が発生すると想定するのが妥当です。

于 2014-04-17T12:48:38.397 に答える