ASP.NET AJAX 中,如何用 JavaScript 调用服务器端的方法

ASP.NET AJAX 中,如何用 JavaScript 调用服务器端的方法?

这里不是指调用简单的 PageMethod,因为静态方法是不能操作当前页面的控件的,所以静态的 PageMethod 作用就跟普通的 WebService 一样,比较局限。
那么,调用一般的服务器端方法,其实就是发起一个异步回调。最简单的实现办法,是通过 UpdatePanel 来做。
首先定义一个隐藏的 LinkButton,在其处理事件中,去调用我们要执行的操作:
< asp:LinkButton  ID ="linkUpdatePosts"  runat ="server"  style ="display:'none';"  OnClick
="linkUpdatePosts_Clicked"
  />

 

     //  刷新帖子列表(供客户端 js 调用)
     protected   void  linkUpdatePosts_Clicked( object  sender, EventArgs e)
    {
        LoadPosts();
    }


然后 JavaScript 中就可以定义函数来触发这个 LinkButton 的回发:

     //  刷新帖子列表
    function refreshPosts() {
        __doPostBack(
' <%= linkUpdatePosts.UniqueID %> ' '' );
    }

 

    // 刷新帖子列表
    function refreshPosts() {
        __doPostBack('<%= linkUpdatePosts.ClientID %>'.split('_').join('$'), '');
    }

这里注意 split('_').join('$') 的用法,是因为作为 __doPostBack 参数的控件标志符是用 $ 分隔的,而 ClientID 是用 _ 分隔,要在两者之间进行下转换。

你可能感兴趣的:(JavaScript)