Asp.net 如何验证动态创建的控件?

Asp.net 如何验证动态创建的控件?,asp.net,ajax,Asp.net,Ajax,我有一个asp.net页面,它的一些控件是动态创建的,这些控件是以下控件之一;文本框、日历或下拉列表 在某些情况下,这些控件应根据从db读取的标志进行验证 有什么方法可以验证吗 动态创建的控件 动态创建任何控件时,您可以在创建这些控件的同时创建验证器,还可以附加所需的验证器控件,您可以在运行时启用/禁用验证器控件。基本上,您需要通过代码创建验证器,并通过代码将它们附加到动态创建的控件。然后,页面将使用页面中的验证器为您呈现 如果验证需要从db中读取标志,那么可能需要使用自定义验证器,该验证器将允

我有一个asp.net页面,它的一些控件是动态创建的,这些控件是以下控件之一;文本框、日历或下拉列表

在某些情况下,这些控件应根据从db读取的标志进行验证

有什么方法可以验证吗 动态创建的控件


动态创建任何控件时,您可以在创建这些控件的同时创建验证器,还可以附加所需的验证器控件,您可以在运行时启用/禁用验证器控件。

基本上,您需要通过代码创建验证器,并通过代码将它们附加到动态创建的控件。然后,页面将使用页面中的验证器为您呈现


如果验证需要从db中读取标志,那么可能需要使用自定义验证器,该验证器将允许您在客户端和服务器上为特定的验证需求设置特定的逻辑。如果不想,您不必提供客户端验证。

我找到了解决该问题的方法。 我在这个页面上遇到的一个主要问题是它支持ajax,并且我需要验证动态创建的控件

我的解决方案和它正常工作,在创建控件时,我向其添加了一个输入属性,将其标记为必需的或不需要的,以及另一个将其标记为要验证的字段的属性

使用Javascript,我检查了所有属性为“dynamic control”的输入标记,并根据“to validate attribute”对其进行验证。很简单,对吧

示例代码: 创建控件时,按如下方式标记它

txtBox.Attributes.Add("Type", "T"); // Type of control.
txtBox.Attributes.Add("IsKeyField", "Y"); // Is dynamically created field.
txtBox.Attributes.Add("IsMandatory", "Y");  // Is mandatory or not?
JavaScript代码

            var inputControls = document.getElementsByTagName("input");
            for(var i=0 ; i<inputControls.length ; i++)
            {
                if ( inputControls[i].getAttribute("IsKeyField") == "Y" )                                        
                {
                    if (inputControls[i].getAttribute("Type") == "T" || (inputControls[i].getAttribute("Type") == "C"))
                    {
                        if(inputControls[i].getAttribute("IsMandatory") == "Y")
                        {
                            if(inputControls[i].value == "")
                            {
                                errorMsg += "\n" + inputControls[i].getAttribute("KeyField_Name") + " is required.";
                                isValidated = false;
                            }                            
                        }                         
                    }
                }
            }

发布一些代码?这样我们也许可以帮助解决问题?
btnUpload.Attributes.Add("onClick", "javascript:if(!ValidateMandatoryFields()) return false;");