Asp.Net Update Panel必填字段验证器问题

时间:2013-09-06 06:19:22

标签: asp.net updatepanel validation

我有一个更新面板,在更新面板中有一个下拉列表和一个必需的字段验证器,它与下拉列表和下拉列表的autopostback设置为true相关联。 现在每当用户更改选项时,更新面板中的autopost后退都会发生..我需要的是,如果用户从下拉列表中选择空项目,它不应回发到服务器,验证器应该触发....但在我的情况下验证器触发完美,并且还有回发和回发后所需的字段validaor状态为真。

我需要的是在验证器失败时停止回发。

我已经搜索了这个问题,但是没有发现任何有用的东西。

1 个答案:

答案 0 :(得分:1)

1-在DropDownList中:

CausesValidation="True" 

2-在Page_Load中使用string.Empty表示第一项的值:

 DropDownList1.Items.Add(new ListItem("Select...", string.Empty));

ASPX:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
            CausesValidation="True" 
            onselectedindexchanged="DropDownList1_SelectedIndexChanged">
        </asp:DropDownList>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ControlToValidate="DropDownList1" Display="Dynamic" ErrorMessage="Empty"></asp:RequiredFieldValidator>
        <br />
        <asp:Label ID="Label1" runat="server" EnableViewState="False"></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>

代码背后:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
        Label1.Text = DropDownList1.SelectedItem.Text;
}
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DropDownList1.Items.Add(new ListItem("Select...", string.Empty));
        DropDownList1.Items.Add(new ListItem("mehdi", "1"));
        DropDownList1.Items.Add(new ListItem("ali", "2"));
    }
}
相关问题