【问题标题】:how to validate dynamically added controls in asp.net如何在asp.net中验证动态添加的控件
【发布时间】: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


【解决方案1】:

删除

ValidationGroup = "standard" 

来自RequiredFieldValidator 或添加到文本框

ValidationGroup = "standard"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 2013-09-11
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多