Dropdown未触发的必需验证器(从数据库填充的asp:dropdown)

时间:2012-06-20 00:30:11

标签: c# asp.net webforms

<asp:DropDownList id="Code1" runat="server" 
    OnLoad="GetCode1" ValidationGroup="ValidateGroup"/>    
 <asp:RequiredFieldValidator ID="Code1_RequiredValidator" runat="server" 
       ErrorMessage="Please select a value!"   ControlToValidate="Code1" 
       ValidationGroup="ValidateGroup" InitialValue="Select Code1!">
 </asp:RequiredFieldValidator>

下拉代码填充在后面的代码中,如下所示:

protected void GetCode1(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ISROManagement sroMgmt = ObjectFactory.CreateSROManagement();
                List<string> code1List = QuerydBForCodes();
                Code1.DataSource = codeList;
                Code1.DataBind();
                Code1.Items.Insert(0, "Make a selection."); //Added to be shown as the default value:
            }
        }

当我提交模态弹出扩展器时 - 使用索引0处的默认值,即选择 - 我没有看到ErrorMessage =“请进行选择!”印在旁边的下拉!所以验证不会发生。

同样在提交模式弹出窗口的按钮单击中,我有一个

Page.Validate("ValidateGroup");
        if (!Page.IsValid) return;

但是,我没有看到下拉列表旁边打印的验证消息!

2 个答案:

答案 0 :(得分:1)

在GetCode1函数中替换以下行:

Code1.Items.Insert(0, "Make a selection.");

Code1.Items.Insert(0, "");

答案 1 :(得分:0)

您的下拉列表必须具有相同的ValidationGroup。将ValidationGroup =“ValidateGroup”添加到下拉列表

从“选择Code1”更改InitialValue! “做出选择。”