ASP.NET 和 SQL Server 中的动态表单

Posted

技术标签:

【中文标题】ASP.NET 和 SQL Server 中的动态表单【英文标题】:Dynamic form in ASP.NET and SQL Server 【发布时间】:2019-02-01 17:24:32 【问题描述】:

一些上下文:我目前有一个用作文档搜索器过滤器的表单,有一个下拉列表加载了 SQL Server 表中的数据,当我更改它时,字段会更改其显示,具体取决于文档的类型。

它的工作原理是我拥有 html 上的所有字段,并通过类确定哪个字段对应于哪个文档类型。因此,每次添加新文档类型时,我都必须编辑 html 以将新类型包含到字段中。

我的问题是:我怎样才能做到这一点,以便我不需要更改 html 或 js 或 Web 应用程序中的任何代码,并且每次我必须添加新类型的文档时只更改 SQL Server?

【问题讨论】:

这是一个非常广泛的问题,没有代码会使它变得更加困难,但我有完全基于数据库数据的表单。整个表单,每种类型的所有字段都是从数据库加载的。因此,您只需要使用后端代码使用 C# 动态添加字段,如果您需要基于下拉列表中每个值的类型,那么您将遍历 SQL 数据并为循环中的每个值添加所需的任何内容 @Brad,我把它说得很宽泛,因为我需要重做整个事情。我正在寻找更改网络代码一次的建议。 【参考方案1】:

要实现可扩展文档,您可以尝试以下操作: 添加新表:

document_type_fields:
id, document_type, field_name, field_type
1, sms, received_date, date
2, sms, content, text(255)
3, email, content, textarea(1000000)
4, email, to_address, text(255)

为了渲染文档字段,找到它的类型,找到文档类型字段: 短信:

received_date, date
content, text(255)

添加 javascript 开关 (document_type) 并将其字段显示为 html 控件

将特定于文档类型的字段保存在单独的表中:

document_specific_fields(document_id, field_name, field_value)

document_id 是引用主表的主键和外键(具有所有文档类型共有的字段):

documents(document_id, document_type, ...)

【讨论】:

以上是关于ASP.NET 和 SQL Server 中的动态表单的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net, VB, SQL Server Reporting Services..从目录中动态生成的报告要在单击时在报告查看器上查看?

ASP.NET 和 SQL Server 2008 中的错误“用户 'NT AUTHORITY\IUSR' 登录失败”

如何使用 C# 从 ASP.NET 中的 SQL Server 数据库中检索和显示 GridView 中的值

SQL Server 中的存储过程未使用 VB.Net 编码填充 ASP.Net 下拉列表

如何通过 C# ASP.net 从 SQL Server 中的文本框中存储日期

ASP.Net 成员资格 SQL Server