我目前正在开发的网站可以显示动态构建的表单。
Aform
由 组成fields
,由用户直接创建,可以显示为我们支持的多种类型之一(文本框、列表框、复选框、单选按钮列表等)。呈现逻辑使用 arepeater
迭代用户定义的所有字段的集合。
在转发器内部(直接在 aspx 页面中),定义了我们支持的每种类型的一个实例。
<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 中所需的控件,而不是开始“玩”可见性......但当前的方法也有一些明显的好处。
真的是如何在网络应用程序中做到这一点吗?这里有一些最佳实践吗?
谢谢!