原本这是个很简单的问题,但不知道的话,却很难想到。
1.在Javascript中调用后台函数
在这个例子中该方法并不是好的解决方案,在这里只是作为示例。
a. 添加一个submit按钮,如代码第18行,其onserverclick事件等于服务器端事件SetValue
b.在后台代码中添加SetValue方法,注意其是一个protected方法,不能为private。
c.在应用中,通过调用submit按钮的click()事件在调用SetValue方法。在示例中是在button的onclick事件中调用。
客户端代码:

 1Javascript调用服务器端事件_控件Javascript调用服务器端事件_控件_02<%Javascript调用服务器端事件_服务器端_03@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebTest.WebForm1" %>
 2Javascript调用服务器端事件_html_04<HTML>
 3Javascript调用服务器端事件_html_04    <HEAD>
 4Javascript调用服务器端事件_html_04        <title>WebForm1</title>
 5Javascript调用服务器端事件_控件Javascript调用服务器端事件_控件_02        <script language="javascript">Javascript调用服务器端事件_服务器端_03            
 6Javascript调用服务器端事件_服务器端_10        function ClientSetValue()
 7Javascript调用服务器端事件_javascript_11Javascript调用服务器端事件_click事件_12        Javascript调用服务器端事件_服务器端_03{
 8Javascript调用服务器端事件_服务器端_10            document.Form1.smtSetValue.click();
 9Javascript调用服务器端事件_html_15        }

10Javascript调用服务器端事件_click事件_16        
</script>
11Javascript调用服务器端事件_html_04    </HEAD>
12Javascript调用服务器端事件_html_04    <body>
13Javascript调用服务器端事件_html_04        <form id="Form1" method="post" runat="server">            
14Javascript调用服务器端事件_html_04            <dir>
15Javascript调用服务器端事件_html_04                <input type="text" id="txtSetValue" runat="server" /> 
16Javascript调用服务器端事件_html_04                <input type="button" id="btnSetValue" onclick="ClientSetValue();" value="Set value" />
17Javascript调用服务器端事件_html_04            </dir>
18Javascript调用服务器端事件_html_04            <input type="submit" onserverclick="SetValue" id="smtSetValue" runat="server" style="DISPLAY:none" value="Submit Query">
19Javascript调用服务器端事件_html_04        </form>
20Javascript调用服务器端事件_html_04    </body>
21Javascript调用服务器端事件_html_04</HTML>
22Javascript调用服务器端事件_html_04

服务器端代码:

1Javascript调用服务器端事件_html_04protected void SetValue(object sender, System.EventArgs e)
2Javascript调用服务器端事件_html_04        {
3Javascript调用服务器端事件_html_04            this.txtSetValue.Value = "The value from server!";
4Javascript调用服务器端事件_html_04        }


2.在控件中调用后台函数
该方法在上例中其实已经提到,也是我们很常用的一种方法。
a.在控件的onserverclick,或者onserverchange事件中直接调用服务器端事件,忘了提醒,该事件不要在服务器端声明委托。如上例中的18行就是用的该方法。

3.常规用法。
常规用法就是在服务器端声明委托。如:

1Javascript调用服务器端事件_html_04/// <summary>
2Javascript调用服务器端事件_html_04        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
3Javascript调用服务器端事件_html_04        /// 此方法的内容。
4Javascript调用服务器端事件_html_04        /// </summary>
5Javascript调用服务器端事件_html_04        private void InitializeComponent()
6Javascript调用服务器端事件_html_04        {    
7Javascript调用服务器端事件_html_04            this.smtSetValue.ServerClick += new System.EventHandler(this.smtSetValue_ServerClick);
8Javascript调用服务器端事件_html_04
9Javascript调用服务器端事件_html_04        }

完!