Проверка DropdownList с AutoPostBack установлена ​​в true в панели обновлений - PullRequest
0 голосов
/ 18 января 2012

Есть много сообщений, которые имеют дело с элементами управления проверкой на панели обновления и частичной визуализацией страницы. Но у меня возникла другая проблема, я попытался обновить до sp1 .NET Framework 2.0 и снова .NET Framework 4.0, но ничего не происходит.

В основном я получил выпадающий список на панели обновлений, для которого autopostback установлен в true, а пустой элемент -- Select -- добавлен как index 0 для проверки (Required Field Validator) Бывает, что даже когда я выбираю индекс 0, на короткое время появляется сообщение проверки , а затем происходит частичная обратная передача . Есть ли у кого-нибудь причины для того же или альтернативного способа сделать это.

Примечание:

Я заполняю другие элементы управления (выпадающий список) во время выбранного события изменения индекса. Я мог бы использовать выпадающий список из AjaxControlToolkit, но тогда я теряю функциональность проверки событий, которая нужна другим элементам управления.

Ответы [ 2 ]

0 голосов
/ 18 января 2012

В качестве быстрого теста я пришел с этим, который работает (для меня):

<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 с группами проверки;Только ddl1 проверено на SelectedIndexChanged, но оба ddl1 и txt1 подтверждены OnClick

0 голосов
/ 18 января 2012

почему бы не проверить выбор клиента в коде позади?

для бывшего ':

if (ddlName.selectedValue == "-1")
{
    lblErr.text = "You have to select...";
    lblErr.visible = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...