簡體   English   中英

如何創建動態必填字段驗證器

[英]how to create dynamic Required field Validator

我使用以下代碼生成了一組必需的字段驗證器:

 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];

我正在使用以下代碼創建一些動態控件:

     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);
        }

但是,當我向驗證程序req [i]分配要驗證的控件時,就會出現錯誤,對象引用未設置為對象的實例。 無法理解為什么會出現此問題。 任何幫助糾正我的代碼! 謝謝

這是由於您忘記初始化RequiredFieldValidator數組對象。 您的代碼似乎缺少了這一點:

req[i] = new RequiredFieldValidator();

之后,您可以使用其屬性。

希望這能清除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM