我目前正在开发的网站可以显示动态构建的表单。Asp.Net页面呈现和UI控件模块化
甲form
由fields
,其直接由用户创建,并且可以被显示为我们支持多种类型(文本框,列表框,tickbox,单选按钮列表等)中的一个。渲染逻辑使用repeater
,它遍历用户定义的所有字段的集合。
在中继器内部(直接在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的清洁和instanciate完全是CodeBehind所需的控件,而不是开始“展现”可见性......但目前的方法也有一些明显的好处。
这是真的如何在网络应用程序中做到这一点? 这里有一些最佳实践吗?
谢谢!