Событие ASP.NET DropDownList OnSelectedIndexChanged не сработало - PullRequest
7 голосов
/ 03 мая 2011

Я пытаюсь использовать несколько AJAX и ASP.Net вместе, чтобы позволить мне запускать функции без необходимости обновлять всю страницу, но я наткнулся на проблему при выполнении этого

Вот мой код

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:DropDownList ID="ddl1" runat="server" OnSelectedIndexChanged="update1" />

        <asp:TextBox runat="server" ID="txt1" />

    </ContentTemplate>
</asp:UpdatePanel>

А вот мой код

 Sub update1(ByVal sender As Object, ByVal e As EventArgs)

    txt1.Text = Now.ToString

End Sub

Событие не сработает, потому что у меня нет AutoPostBack="True" в моем ddl, но добавление этого в ddl приведет к обратной передаче всегостр.

Есть ли способ избежать использования AutoPostBack="True", чтобы он только обновлял панель?

Я знаю, что могу использовать asp:Button, чтобы обойти это, но я бы действительнохотел бы иметь возможность использовать ddl с OnSelectedIndexChanged

Спасибо

Ответы [ 2 ]

7 голосов
/ 03 мая 2011

Если вы хотите избежать отправки целого состояния представления на сервер, вам следует обратиться к обратным вызовам .

Вместо этого, если вы хотите избежать обновления всей страницы, но с обратной передачей, это должно работать:

<asp:DropDownList ID="ddl1" runat="server" OnSelectedIndexChanged="update1" AutoPostBack="True"  />

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <Triggers>
         <asp:AsyncPostbackTrigger ControlID="ddl1" EventName="SelectedIndexChanged" />
    </Triggers>
    <ContentTemplate>
        <asp:TextBox runat="server" ID="txt1" />
    </ContentTemplate>
</asp:UpdatePanel>
0 голосов
/ 25 ноября 2015

Попробуйте создать новую страницу с такими же кодами и другим именем страницы.Работал на меня

...