現在開発中の Web サイトでは、動的に構築されたフォームを表示できます。
はform
で構成さfields
れ、ユーザーが直接作成し、サポートされている複数のタイプ (テキスト ボックス、リスト ボックス、ティックボックス、ラジオボタン リストなど) の 1 つとして表示できます。レンダリング ロジックはrepeater
、ユーザーが定義したすべてのフィールドのコレクションを反復処理する を使用します。
リピーターの内部 (aspx ページで直接) では、サポートする各型の 1 つのインスタンスが定義されています。
<asp:Repeater ID="fieldRepeater" runat="server">
<ItemTemplate>
<asp:TextBox ID="textBox" runat="server" />
<asp:DropDownList ID="dropDownList" runat="server" />
<asp:CheckBox ID="checkBox" runat="server" />
<asp:RadioButtonList ID="radioButtonList" runat="server" />
[...]
</ItemTemplate>
</asp:Repeater>
ロード中に、どのコントロールが必要かを判断し、他のすべてのコントロールを積極的に非表示にします。
Web ベースの開発の世界ではまだ新しいので、このアプローチは私には非常に奇妙に思えます。私の直感では、UI をクリーンに保ち、CodeBehind で必要なコントロールを正確にインスタンス化して、可視性で「再生」を開始しないことを好みますが、現在のアプローチには明らかな利点もあります。
それは本当にWebアプリでそれを行う方法ですか? ここにいくつかのベストプラクティスはありますか?
ありがとう!