限制 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?我不确定最好的方法是什么?

限制 ASP.net 下拉列表

我认为打开一个新表对于如此简单的任务需要太多的努力。当然,这取决于您的开发/设计风格,但我建议在当前表中添加一个新列,并在其中保留下拉列表 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写入ViewDropdownID DropdownTexts表中。