1
4
如果没有这样做或类似的事情,我认为您的DB结构可能包括控件类型、名称、值类型(如果已验证)、验证方式(如果需要)。然后,当您在读取所需控件的记录/数据集时,您可能会将记录集中的控件类型与转换后的值进行比较,然后将其添加到WebForm中。 例如:
理论上,这会将标签放在文本框控件旁边。我不知道DIV是否可以工作,但是您可以运行复选框、文本框、标签等类型的内容。 一旦控件和标签在页面上,您将需要某种形式的操作,以使服务器将值保存到数据库中。我建议将表名和列名与对象列表一起存储。然后将表单字段映射到用于插入的DB列。(请记住,这个解释好像是在20万英尺的地方) |
2
6
这是我快速制作的概念证明。 我内置了vs 2008 SP1。AppData文件夹中有一个SQL Server数据库,因此如果您想运行它,sqlExpress将提供帮助。 我建得很快,所以很马虎。 |
3
2
可能需要以下基本结构:窗体、字段、字段类型。您将需要每个字段的业务对象和数据表,以便存储每个字段的配置。 您可能需要该字段具有多个可设置的属性(如必需),以便您可以为每个字段单独跟踪这些属性。 然后,您将需要某种实用程序来读取数据层,然后对于每个字段和字段类型,了解要生成的控件类型以及如何将控件添加到当前页。 使用主页面上的asp:place holder标记将允许您使用表单生成实用程序向此占位符动态添加控件。 最后,您可能希望为生成的表单的不同部分构建一个带有多个类的样式表,以便客户机可以自定义您生成的任何控件表的字体、间距等。 编辑: 如果表单上输入的数据需要持久化,那么您需要决定是否要有一个可定制的数据层。您可以拥有一个空的数据库表,在该表上使用alter table脚本,以允许客户机根据需要向数据库添加列,然后可以设置绑定到哪个列的控件。控件与数据库列之间的映射对于正确存储数据至关重要。 |
4
0
每个控件都可以实例化并添加到页面中。 例子:
在此之后,应将控件添加到任何容器的Controls属性中:
要在回发后检索控件,可以使用findcontrol方法。
|
5
0
正如其他人所说,通过在运行时动态地向ASP.NET页添加控件,确实有一些方法可以做到这一点。 或者,尽管我没有用 Microsoft Infopath 从我听说的情况来看,它做了很多你想做的事情(即,允许超级用户设计表单/问卷,上网,然后再收集数据) 如果您的客户端具有适当的Microsoft Office版本,则它们可能已经有了InfoPath。 |
6
0
我以前做过这个。 我用了两张桌子 keyfield_master:对于字段名,键入,它是强制的还是非强制的? 和 keyfield_details:根据(值和描述)存储自定义字段值。 使用页面加载事件创建该字段
另外,你也可以参考这个问题 "How to validate dynamically created controls?" 这个问题和那个程序有关? 此外,验证可以是客户端,如上述问题中所述? 或者服务器端将创建的字段存储在一个列表中,然后您可以在提交时检查该列表。 |