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