ASP.NET DropDownList OnSelectedIndexChanged事件未激发

ASP.NET DropDownList OnSelectedIndexChanged事件未激发,asp.net,ajax,vb.net,postback,Asp.net,Ajax,Vb.net,Postback,我试图同时使用一些AJAX和ASP.Net,使我能够在不刷新整个页面的情况下运行函数,但我在这样做时遇到了一个问题 这是我的密码 <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <

我试图同时使用一些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>
事件不会触发,因为我的ddl上没有
AutoPostBack=“True”
,但将其添加到ddl将回发整个页面

有没有办法避免使用
AutoPostBack=“True”
只更新面板

我知道我可以使用
asp:Button
来解决这个问题,但我真的希望能够将ddl与
OnSelectedIndexChanged一起使用


谢谢

如果要避免将整个viewstate发送到服务器,请查看

相反,如果您希望避免刷新整个页面,但使用回发,则应该可以:

<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>


尝试使用相同的代码和不同的页面名称创建新页面。为我工作

r您确定AutoPostBack=“True”回发整个页面?添加AutoPostBack=“True”不应该回发整个页面(至少页面不会flickr)-它应该只更新更新面板的内容?AutoPostBack=“True”。谢谢我讨厌使用UpdatePanels(我更喜欢JQuery),所以我觉得自己回到了过去。但这就是我今天需要的。我完全不明白为什么这个答案没有在其他地方给出,而有人问过类似的问题。正是我想要的。谢谢。请评论或改进它
<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>