ASP.NET DropDownList SelectedIndexChanged 事件未触发

标签 asp.net ajax vb.net postback

我正在尝试同时使用一些 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为了解决这个问题,但我真的很想能够使用带有 OnSelectedIndexChanged 的 ddl

谢谢

最佳答案

如果你想避免将整个 View 状态发送到服务器,你应该查看 callbacks .

相反,如果您想避免刷新整个页面,但使用回发,这应该有效:

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

关于ASP.NET DropDownList SelectedIndexChanged 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5868066/

相关文章:

c# - 当多列数据匹配时,如何合并DataTable中的行?

vb.net - Microsoft VB.NET 命名约定

vb.net - 从 VB.NET 对象数组列表中检索数据

c# - 使用 C# 时阻止用户在文本框中输入数值

php - 我可以使用 PHP 从 JQuery AJAX 请求返回输出状态吗?

javascript - 设计一个比使用 AJAX 获取整个 HTML 文档更好的解决方案

javascript - AJAX请求后获取数据

c# - 如何在子页面上设置javascript?

c# - 410 状态显示 "The page you requested was removed"

c# - 如何验证 ASPNET AJAX 安装