简体   繁体   English

如何创建动态必填字段验证器

[英]how to create dynamic Required field Validator

I have generated an array of required field validators using following code: 我使用以下代码生成了一组必需的字段验证器:

 Panel[] divMain = new Panel[22];
 DropDownList[] gender = new DropDownList[22];
 TextBox[] txtFirstName = new TextBox[22];
 TextBox[] txtMiddleName = new TextBox[22];
 TextBox[] txtLastName = new TextBox[22];
 TextBox[] txtAge = new TextBox[22];
 RequiredFieldValidator[] req = new RequiredFieldValidator[30];

and i am creating some dynamic controls using following code: 我正在使用以下代码创建一些动态控件:

     for (int i = 0; i < noOfad - 1; i++)
        {


            HtmlGenericControl p = new HtmlGenericControl("p");
            HtmlGenericControl strong = new HtmlGenericControl("strong");
            strong.InnerText = "Adult" + Convert.ToString(i + 2);
            p.Controls.Add(strong);
            divAdultMoreForm.Controls.Add(p);
            Panel div = new Panel();
            HtmlGenericControl p1 = new HtmlGenericControl("p");
            p1.InnerHtml = "<span><strong>Full Name (As per Valid Govt Id Proof valid )</strong></span> <span><strong style='  margin-left: 549px;'>Age(in Years 18 +) </strong></span>";
            div.Controls.Add(p1);

            HtmlGenericControl p2 = new HtmlGenericControl("p");
            gender[i] = new DropDownList();
            gender[i].Items.Add(new ListItem("Title", "0"));
            gender[i].Items.Add(new ListItem("Mr.", "1"));
            gender[i].Items.Add(new ListItem("Mrs.", "2"));
            gender[i].Items.Add(new ListItem("Ms.", "3"));
            gender[i].CssClass = "txt";
            p2.Controls.Add(gender[i]);

            txtFirstName[i] = new TextBox();
            txtFirstName[i].Attributes.Add("placeholder", "First Name");
            txtFirstName[i].CssClass = "txt input";
            txtFirstName[i].ID = "txtFirstName" + Convert.ToString(i);
            req[i].ControlToValidate = txtFirstName[i].ID;//Object refrence not set to an instance ofo an object
            req[i].ForeColor = System.Drawing.Color.Red;
            req[i].ErrorMessage = "*";
            txtFirstName[i].CssClass = "input txt";
            txtMiddleName[i] = new TextBox();
            txtMiddleName[i].Attributes.Add("placeholder", "Middle Name");
            txtMiddleName[i].CssClass = "txt input";
            txtMiddleName[i].CssClass = "input txt";
            txtMiddleName[i].ID = "txtMiddleName" + Convert.ToString(i);
            txtLastName[i] = new TextBox();
            txtLastName[i].Attributes.Add("placeholder", "Last Name");
            txtLastName[i].CssClass = "txt input";
            txtLastName[i].CssClass = "input txt";
            txtLastName[i].ID = "txtLastName" + Convert.ToString(i);
            txtAge[i] = new TextBox();
            txtAge[i].Attributes.Add("placeholder", "Enter Age");
            txtAge[i].CssClass = "txt";
            p2.Controls.Add(txtFirstName[i]);

            p2.Controls.Add(txtMiddleName[i]);

            p2.Controls.Add(txtLastName[i]);

            p2.Controls.Add(txtAge[i]);

            div.Controls.Add(p2);
            divAdultMoreForm.Controls.Add(div);
        }

But when i am assigning the control to validate to the validator req[i] then there comes an error Object reference not set to an instance of an object. 但是,当我向验证程序req [i]分配要验证的控件时,就会出现错误,对象引用未设置为对象的实例。 Can not understand why this problem is occuring. 无法理解为什么会出现此问题。 Any help to correct my code! 任何帮助纠正我的代码! Thanks 谢谢

This is due to the fact that you forgot to initialize the RequiredFieldValidator array object. 这是由于您忘记初始化RequiredFieldValidator数组对象。 This seems to be missing from your code : 您的代码似乎缺少了这一点:

req[i] = new RequiredFieldValidator();

After this you can play with its properties. 之后,您可以使用其属性。

Hope this clears it. 希望这能清除它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM