我目前正在根据数据库信息重新编写动态表单。
此表单包含许多“特定于项目”的属性,每个属性都有一个控件和标签,例如,Category有一个标签显示“Category”,DropDownList包含所有选项。
我现在发现的问题是,根据数据库中的一些信息(属性名称,选项和属性的tpye,如文本或下拉列表)以编程方式创建,每个都添加到页面中。至少有一个验证器,以确保输入的数据是正确的。
这提出了一个问题:当我将每个组件验证为对象时,如何在验证器上设置ControlToValidate(也以编程方式创建),而不是aspx上的静态内容?
答案 0 :(得分:3)
为动态控件提供Id,然后使用该Id设置ControlToValidate。像这样:
ddl = new DropDownList();
ddl.Id = "ddlWithMyID";
val = new SomeTypeOfValidator();
val.ControlToValidate = "ddlWithMyID";
确保如果要处理动态创建的控件中的事件以重新创建它们并为它们提供相同的Id。这可以在Page_Init中完成,甚至可以在Page_Load中完成。
答案 1 :(得分:2)
确保您的控件具有ID并相应地设置Validator.ControlToValidate属性。