使用必填字段验证程序无效的验证下拉列表

时间:2017-03-14 10:05:13

标签: asp.net dropdown requiredfieldvalidator

我有一个asp下拉菜单,我正在尝试验证它,但验证工作正常。

我的下拉列表和验证码:

<asp:DropDownList CssClass="form-control"
    runat="server" ID="cmb_Addresses"
    ValidationGroup="ShippingAddress">
</asp:DropDownList>
<asp:RequiredFieldValidator ControlToValidate="cmb_Addresses" 
    ValidationGroup="ShippingAddress" 
    InitialValue="0" 
    Display="dynamic" 
    ErrorMessage='Please select an address' 
    runat="server"/>

以下是填充下拉列表的方法:

private void SetupAddresses()
{
    var accountService = new AccountService();
    var userService = new UserService();

    var username = userService.GetLoggedInUser();

    var addresses = accountService.GetAddressesForUser(username);

    cmb_Addresses.Items.Clear();
    cmb_Addresses.Items.Add(new System.Web.UI.WebControls.ListItem("--Please Select--", "0"));

    foreach (var address in addresses)
    {
        cmb_Addresses.Items.Add(new System.Web.UI.WebControls.ListItem(address.Name, GetAddressValue(address)));
    }
}

我已经尝试了我在网上找到的所有建议,但它们没有用。

哦,该方法在!IsPostback

中调用

1 个答案:

答案 0 :(得分:0)

您是否在执行PostBack的按钮中添加了正确的ValidationGroup?因为我测试了你的代码片段并且有效。

<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="ShippingAddress" />

如果您确实将其添加到按钮,则页面上某处可能存在javascript错误,该错误会干扰Validator。如果有错误,验证器将无效并且表单已发布。