我有一个简单的表单,在文本框上有一个必需的Validator。当我将文本框留空并检查Page.isValid时,它总是如此。我无法弄清楚我做错了什么导致页面永远是真的。
<asp:TextBox ID="txtVendorTracking" runat="server" Width="150px"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvTxtVendorTracking"
InitialValue="Enter Vendor Tracking Nbr" runat="server"
ErrorMessage="Vendor Tracking Required." ControlToValidate="txtVendorTracking"
ValidationGroup="val" Display="Dynamic">*</asp:RequiredFieldValidator>
<asp:Button ID="btnSave" runat="server" Text="Save" Width="100px" onclick="btnSave_Click" ValidationGroup="val"/>
protected void btnSave_Click(object sender, EventArgs e)
{
Page.Validate(MasterValidation.ValidationGroup);
if (!Page.IsValid)
{
ModalPopupExtender3.Show();
txtRONbr.Focus();
return;
}
}
答案 0 :(得分:0)
由于文本框的初始状态为空,问题出在此处:
InitialValue="Enter Vendor Tracking Nbr"
每MSDN:
仅当关联的输入控件的值时,验证才会失败 失去焦点时匹配此InitialValue。
由于验证器的初始值不是空字符串,因此它将空字符串视为有效输入。要解决这些问题,您需要确定文本框的初始状态,并相应地设置验证器。例如,您现在应该从标记中删除InitialValue
- 它默认为String.Empty
。