2013-01-08 18 views
1

我有一个GridView与数据库的记录。ASP.net:动态创建的DropDownLists的复杂验证

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

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

我该怎么做。我想过javascript,但这可能非常棘手,因为所有事情都是在代码后面完成的。 validation controls很好,但我不知道如何验证这样一个复杂的事情...

任何想法?

+0

UI约束需要在Javascript及其相关工具(如jQuery)中完成。一旦提交页面,*实际* POST值将需要在代码隐藏中验证。 –

+0

您可能想要查看更新面板。基本上将下拉列表放在更新面板中,并确保设置了“儿童作为触发器”。还要将下拉列表设置为autopostback。现在,当您更改下拉列表的值时,可以更新其他列表。您也可以将gridview设置为触发器,确保更新面板设置为有条件触发。如果你提供一些伪代码,我可以更好地理解你想要什么,并给你一个代码答案。 – vesuvious

回答

0

谢谢你的回答! 我不会每次都做异步回发,特别是因为在更改过程中列表不应该被限制。我以这种方式解决了这个问题: 用户点击保存,我为每个下拉项目创建一个bool数组,然后循环遍历占位符中的所有下拉列表。如果有3到5的区域,我将我的布尔数组中的索引为3-5的值设置为true。如果其中一个值已经为真,那么在开始/停止位置必须有错误的选择。 我认为,它不是一个很好的方式,但工作速度很快,并做我想要的一切。如果有人有更好的主意,请让我知道...;)

谢谢! Stefan