繁体   English   中英

在updatepanel中将AutoPostBack设置为true的DropdownList验证

[英]DropdownList validation with AutoPostBack set to true inside updatepanel

有很多帖子涉及更新面板和部分页面渲染中的验证控件。 但是我在这里遇到了一个不同的问题,我确实尝试更新到sp1 .NET Framework 2.0,然后又更新到.NET Framework 4.0,但是什么也没有发生。

基本上我在更新面板中有一个dropdownlist,其autopostback设置为true,并且一个空项目-- Select --被添加为index 0以进行验证( Required Field Validator )。 我确实发生了即使我选择索引0时, 验证消息也会短暂出现然后发生部分回发的情况 是否有人有相同或替代方式的原因。

注意:

在选定的索引更改事件期间,我正在填充其他控件(下拉列表)。 我可以使用AjaxControlToolkit级联下拉列表,但随后我失去了其他控件所需的事件验证功能。

为什么不验证后面代码中的客户选择?

对于前':

if (ddlName.selectedValue == "-1")
{
    lblErr.text = "You have to select...";
    lblErr.visible = true;
}

作为一个快速测试,我想出了这个方法(对我而言):

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:RequiredFieldValidator ID="rfv" runat="server" ControlToValidate="ddl1" InitialValue="0" ValidationGroup="DDLOnly">*</asp:RequiredFieldValidator>
        <asp:DropDownList ID="ddl1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="test" CausesValidation="true" ValidationGroup="DDLOnly">
            <asp:ListItem Value="0">---Select---</asp:ListItem>
            <asp:ListItem Value="1">Option1</asp:ListItem>
            <asp:ListItem Value="2">Option2</asp:ListItem>
            <asp:ListItem Value="3">Option3</asp:ListItem>
        </asp:DropDownList>
        <asp:DropDownList ID="ddl2" runat="server">
        </asp:DropDownList>
        <asp:RequiredFieldValidator ID="rfvTxt" runat="server" ControlToValidate="txt1" ValidationGroup="WholePage">*</asp:RequiredFieldValidator>
        <asp:TextBox ID="txt1" runat="server" ValidationGroup="WholePage"></asp:TextBox>
        <asp:Button ID="btn1" runat="server" Text="Button" OnClientClick="return Page_ClientValidate();" OnClick="btn" />
    </ContentTemplate>
</asp:UpdatePanel>

并在后面的代码中:

protected void test(object sender, EventArgs e)
{
    ddl2.Items.Clear();
    for (int i = 0; i < 4; i++)
        ddl2.Items.Add(new ListItem("Test" + ddl1.SelectedIndex));
}

选择任何选项时填充第二个DDL,但不填充初始项0

编辑:TextBox和带有验证组的Button添加; ddl1SelectedIndexChanged上经过验证,但ddl1txt1均在OnClick上经过验证

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM