【问题标题】:Asp.Net Update Panel Required Field Validator IssueAsp.Net 更新面板必填字段验证程序问题
【发布时间】:2013-09-10 03:56:40
【问题描述】:

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

如果验证器失败,我需要停止回发。

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

【问题讨论】:

    标签: asp.net updatepanel validation


    【解决方案1】:

    1- 在下拉列表中:

    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"));
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多