0
我有一個帶有一些文本框的頁面。一些ASP:Textboxes是在.aspx文件中創建的,而其他自定義的是在代碼隱藏(基於db)中創建的。我想驗證以確保填寫所有字段。添加RequiredFieldValidator來動態創建後面代碼中的控件
當我按下ASP:Button繼續時,在我的html/aspx文件中創建的文本框被正確驗證,但由於某種原因,動態創建的RequiredFieldValidators被忽略。
代碼:
<tr runat="server" id="weight_row">
<td>
Weight: <asp:Label runat="server" ID="weightReqLabel" CssClass="required" Visible="false">*</asp:Label>
</td>
<td>
<asp:TextBox runat="server" ID="weight" CssClass="form-control"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="validator_weight" ControlToValidate="weight" SetFocusOnError="true" ErrorMessage="Required." CssClass="validation-error"></asp:RequiredFieldValidator>
</td>
</tr>
上述工作正常。
然而,這不起作用:我添加EnableClientScript=false
TextBox txtbx = new TextBox();
txtbx.ID = "TextBox_" + i;
txtbx.CssClass = "form-control";
txtbx.Text = fieldValue;
RequiredFieldValidator reqFieldVal = new RequiredFieldValidator();
reqFieldVal.ID = "validator_" + i;
reqFieldVal.ControlToValidate = txtbx.ID;
reqFieldVal.SetFocusOnError = true;
reqFieldVal.ErrorMessage = "Required";
reqFieldVal.EnableClientScript = false;
reqFieldVal.CssClass = "required";
reqFieldVal.Enabled = true;
placeHolder.Controls.Add(txtbx);
placeHolder.Controls.Add(reqFieldVal);
之前,沒有確認的是工作。我補充說,通常編碼的驗證器工作,但後面的代碼不。
我也嘗試添加一個ValidationGroup並嘗試按鈕的OnClick中的Page.Validate,但它似乎沒有幫助。
protected void SaveAndContinue_Click(object sender, EventArgs e)
{
Page.Validate();
if (Page.IsValid)
{
((Redirect))
}
}
我做錯了什麼?
Sruthi,感謝您的回答!只是一個評論,因爲我看到你是新來的SO。代碼可能會在答案中變得混亂,所以我們使用特殊的格式,所以它很突出。我建議不要在「此之前」或「此行之後」這樣的詞語中,將這些行復制到您的答案,然後追加或附加您的其他代碼。然後突出顯示所有內容並使用「代碼」格式選項(括號{}按鈕)。 – scottysmalls