【发布时间】:2014-03-27 07:15:38
【问题描述】:
我正在加载页面时在我的页面中添加一些控件。
其中一些是必需的,所以我也添加了 requiredfieldvalidator 控件。
但是当我使用按钮单击进行回发时,当时这个动态添加的控件没有得到验证。
我无法理解出了什么问题。
protected override void OnPreRender(EventArgs e) {
Panel pn = new Panel();
RadTextBox rdts = new RadTextBox {
ID = "txt" + txField.ColumnName,
Width = 200
};
pn.Controls.Add(rdts);
RequiredFieldValidator rfv = new RequiredFieldValidator {
ControlToValidate = "txt" + txField.ColumnName,
Display = ValidatorDisplay.Dynamic,
Text = "*",
ValidationGroup = "standard",
ID = "val" + txField.ColumnName,
Visible = true
};
pn.Controls.Add(rfv);
additionalDataPanel.Controls.Add(pn);
}
protected void ClickOK(object sender, EventArgs e) {
if (Page.IsValid){
return true;
}
else{
return false;
}
}
【问题讨论】:
-
什么是附加数据面板?是另一个面板吗?
-
是的,这是我的主要页面面板。
-
首先找到动态创建的id(通过在浏览器中使用viewsource)。使用javascript,您可以验证它们的id
-
你的意思是在这种情况下 requiredfieldvalidator 不起作用?
-
为什么要动态创建控件而不是设置它们的可见性?动态添加控件通常会增加很多在大多数情况下可以避免的复杂性。如果您找到另一种方式(可见性、中继器等)来实现您的要求,它很可能会为您省去一些麻烦。
标签: c# asp.net validation requiredfieldvalidator