【问题标题】:ASP.net: Complex validation of dynamically created DropDownListsASP.net:动态创建的 DropDownLists 的复杂验证
【发布时间】:2013-01-08 23:52:30
【问题描述】:

我有一个带有数据库记录的GridView

我为每个选定的项目动态创建两个DropDown 列表。这意味着,如果我单击选择,将出现两个DropDown 列表,第一个定义开始位置,第二个定义停止位置。两者都包含数字(取决于我选择了多少项目)。如果我选择了 5 个项目,则所有 DropBox 控件都包含值 1 - 5。一切都由后面的代码完成。

现在我想验证一下。停止Control 应设置为较高的作为启动控制。此外,每个已使用的区域都不允许用于下一个控件。例如。如果我在第一对 DropDown 列表中选择 1-5,我将无法使用下一对控件选择 2-6。

我该怎么做。我想到了javascript,但这可能非常棘手,因为一切都是通过代码完成的。 validation controls 很好,但我不知道如何验证这么复杂的东西......

有什么想法吗?

【问题讨论】:

  • UI 约束需要在 Javascript 及其相关工具(如 jQuery)中完成。提交页面后,实际 POST 值将需要在后面的代码中进行验证。
  • 您可能需要查看更新面板。基本上将下拉列表放在更新面板中,并确保设置了“儿童作为触发器”。还将下拉列表设置为自动回发。现在,当您更改下拉列表的值时,可以更新另一个列表。您还可以将 gridview 设置为触发器,确保更新面板设置为有条件地触发。如果你提供一些伪代码,我可以更好地理解你想要什么,并在代码中给你答案。

标签: asp.net c#-4.0 webforms asp.net-webcontrol


【解决方案1】:

感谢您的回答! 我不会每次都进行异步回发,尤其是因为在更改期间不应限制列表。我是这样解决的: 用户单击保存,我为每个下拉项创建一个 bool 数组,然后循环遍历占位符中的所有下拉列表。如果有 3 - 5 的区域,我将 bool 数组中索引为 3-5 的值设置为 true。如果这些值之一已经为真,则必须在开始/停止位置选择错误。 我认为,这不是一个很好的方法,但运行速度非常快,并且可以完成我想要的一切。如果有人有更好的主意,请告诉我... ;)

谢谢! 斯蒂芬

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多