1

私の作業は Razor を使用した MVC3 です
。これは、Telerik DropDownList コントロールを含むエディター テンプレートを使用したシナリオです。
私の要件は、エディター テンプレートから同じ Telerik DropDownList を複数回表示することです。

EditorFor(m=>m.Assignee.Options,"OptionsList")
EditorFor(m=>m.Assignee.Options,"OptionsList")

したがって、これを行うと、両方のコントロールのスタイルが適切にレンダリングされますが、Telerik DDL の「機能」は 2 番目のコントロールの影響を受けます (まったくドロップしません)。最初のコントロールは正常に動作します。

その後、他のコントロールを使用しようとしました (ここでも、コントロールの動作は Teleriks と同じように jQuery に基づいていました)、上記のシナリオを繰り返しました。同じ結果。
最初のコントロールがレンダリングされ、適切に機能しましたが、繰り返された残りのコントロールが壊れました。
この問題は、エディター テンプレートのコントロールで使用されるスクリプト (jQuery) が原因であることがわかりました。
私の質問は、エディター テンプレートで jQuery ベースのコントロールを使用して、同じページで複数動作させることは可能ですか?
もしそうなら、私が参照できる解決策またはリンクはありますか?

4

1 に答える 1

1

これは、 name 属性と id 属性が同じ値を持っているためだと思います。

エディター テンプレートで、name 属性と id 属性を一意にしてみてください。

@(Html.Telerik().DropDownList()
  .Name(ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty))   //unique
  .HtmlAttributes(new { id = ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty) + "_wrapper" })  //unique
  .SelectedIndex(...)
  .BindTo(...)
)
于 2012-06-07T17:15:53.970 に答える