如何连接 DropDownList 以对服务器进行 AJAX 调用

How to wire up a DropDownList to make AJAX calls to the server?

本文关键字:服务器 调用 AJAX DropDownList 何连接 连接      更新时间:2023-09-26

我的页面Default.aspx上有一个 ASP.NET DropDownList服务器控件。我正在尝试处理选择更改事件(如果使用服务器事件,则SelectedIndexChanged事件)客户端并向服务器进行 AJAX 回调(几年前我曾经使用 UpdatePanel,但现在只想使用 jQuery/ajax 来执行此操作)。

我有以下简单的方法服务器端(按照此示例 http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/):

[WebMethod]
public static void MyDDL_SelectedIndexChanged()
{
  //Do some processing
}

然后我在页面中有这个JavaScript:

<script type="text/javascript">
      $(document).ready(function () {
         // Add the page method call as an onclick handler for the control.
         $("<%= MyDDL.ClientID %>").click(function () {
               $.ajax({
                  type: "POST",
                  url: "Default.aspx/MyDDL_SelectedIndexChanged",
                  data: "{}",
                  contentType: "application/json; charset=utf-8",
                  dataType: "json"
               });
            });
            });
</script>

下面是服务器控件:

<asp:DropDownList ID="MyDDL" runat="server" Width="340px" />

就目前而言,这是行不通的。没有错误或任何东西。无论我做什么来与我的DropDownList交互,都不会调用该方法。

我相信问题是 click JavaScript 事件不是连接到控件的正确事件。我也尝试了change,但也没有用。基本上我想要的是当控件上的选择发生更改时,调用脚本,进而调用我的服务器端方法。

任何人都可以帮助我做错了什么吗?

尝试更改事件而不是单击