2009-06-16 66 views
1

我目前正在基于数据库信息重新编写动态表单。在验证器上设置ControlToValidate

这种形式包含了大量的“特定项目”属性,每个属性都有一个单一的控制和标签,例如类别都有一个标签,上面写着“类别”,并包含所有的选项一个DropDownList。

我现在发现的问题是,它们中的每一个都是通过基于数据库中的一些信息(属性名称,属性的选项和属性,例如文本或下拉列表)以编程方式创建的,并添加到页面中它们至少有一个验证器,以确保输入的数据是正确的。

这提供了一个问题:当我将每个组件验证为对象而不是aspx上的静态事件时,如何在验证器上设置ControlToValidate(也以编程方式创建)?

回答

2

确保您的控件具有ID并相应地设置Validator.ControlToValidate属性。

+0

不错的一个,没有发现那个属性! – 2009-06-16 12:46:43

3

为动态控件添加一个Id,然后使用该Id设置ControlToValidate。事情是这样的:

ddl = new DropDownList(); 
ddl.Id = "ddlWithMyID"; 

val = new SomeTypeOfValidator(); 
val.ControlToValidate = "ddlWithMyID"; 

确保,如果你想处理从动态创建的控件的事件重新创建他们,给他们相同的ID。这可以在Page_Init中或甚至在Page_Load中完成。