Anil Sharma
Anil Sharma

Reputation: 55

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. Can not understand why this problem is occuring. Any help to correct my code! Thanks

Upvotes: 0

Views: 1609

Answers (1)

Dhrumil
Dhrumil

Reputation: 3204

This is due to the fact that you forgot to initialize the RequiredFieldValidator array object. This seems to be missing from your code :

req[i] = new RequiredFieldValidator();

After this you can play with its properties.

Hope this clears it.

Upvotes: 1

Related Questions