限制 ASP.net 下拉列表
本文关键字:下拉列表 net ASP 限制 | 更新日期: 2023-09-27 18:25:07
我必须限制 ASP.NET 中某些下拉框的内容。
页面上有 6 个下拉列表,下拉项从数据库中填充。
在数据库中,下拉列表如下所示:
ID Text
1 This is some text
2 Some more text
3 Even more text
4 This is just silly now
因此,对于网页上的每个文本框 - 我只想显示某些数据库表行。
例如,对于下拉列表框 1,我可能希望显示表 ID 1 和 2。对于下拉列表框 2,我可能希望显示表 ID 2 和 3。
对于下拉框3,我可能只想显示第4行。
因此,如果不在 LINQ 中对此进行硬编码,我是否最好为每个下拉框创建另一个表,以及我要显示哪些 ID?我不确定最好的方法是什么?
我认为打开一个新表对于如此简单的任务需要太多的努力。当然,这取决于您的开发/设计风格,但我建议在当前表中添加一个新列,并在其中保留下拉列表 ID。
解决方案 1:
ID Text Dropdowns
1 This is some text -DD1-DD2-
2 Some more text -DD2-DD3-
3 Even more text -DD3-
4 This is just silly now -DD4-
您可以通过对代码进行轻微更改来填充下拉列表。我使用分隔符的原因是处理诸如在文本DD10
中查找成功DD1
等情况。
您必须使用 -DropdownID-
(或您选择以相同格式使用的任何分隔符(进行字符串包含搜索。编辑该列中的值,假设-
是分隔符:
- 将
-
指定为数据库端列的默认值,如果列为空,则列将保留-
。 - 添加新的下拉 ID,首先查找包含您的 ID,然后将
DropdownID-
连接到列值。 - 删除下拉 ID,只需将
DropdownID-
替换为空字符串:""
。 - 如前所述,使用
-DropdownID-
进行搜索。
如果每个实体一次只能显示在一个下拉列表中,则只需将下拉列表的名称写入新列并查找相等而不是包含即可。
解决方案 2:
我看到您考虑过为每个下拉列表打开新的数据库表。这是一个非常糟糕的方法。您可以构建类似以下内容的内容:
-- Texts-- -- Dropdowns -- -- DropdownTexts --
ID Text ID ViewID >..< ID TextID DropdownID
1 This is some text 1 DD1 1 1 1
2 Some more text 2 DD2 2 1 3
3 Even more text 3 DD3 3 2 3
4 This is just silly now 4 4 1
我打开了表Dropdowns
以防您需要数据库端的实现帮助,您可以向Dropdowns
添加更多列以使其更具可配置性。如果没有,请忽略Dropdowns
表,直接将DropdownID
写入View
以DropdownID
DropdownTexts
表中。