【发布时间】:2016-01-23 00:12:12
【问题描述】:
我有一个带有一些文本框的页面。一些 ASP:文本框是在 .aspx 文件中创建的,而其他自定义文本框是在代码隐藏中创建的(基于 db)。我想验证以确保所有字段都已填写。
当我按下我的 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>
以上操作正常。
但是,这不起作用:
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);
在我添加EnableClientScript=false 之前,所有验证都不起作用。在我添加之后,正常编码的验证器工作,但后面的代码没有。
我也尝试添加一个 ValidationGroup 并在按钮的 OnClick 中尝试 Page.Validate 但它似乎没有帮助。
protected void SaveAndContinue_Click(object sender, EventArgs e)
{
Page.Validate();
if (Page.IsValid)
{
((Redirect))
}
}
我做错了什么?
【问题讨论】:
标签: c# asp.net .net validation requiredfieldvalidator