原本这是个很简单的问题,但不知道的话,却很难想到。
1.在Javascript中调用后台函数
在这个例子中该方法并不是好的解决方案,在这里只是作为示例。
a. 添加一个submit按钮,如代码第18行,其onserverclick事件等于服务器端事件SetValue
b.在后台代码中添加SetValue方法,注意其是一个protected方法,不能为private。
c.在应用中,通过调用submit按钮的click()事件在调用SetValue方法。在示例中是在button的onclick事件中调用。
客户端代码:
1<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebTest.WebForm1" %>
2<HTML>
3 <HEAD>
4 <title>WebForm1</title>
5 <script language="javascript">
6 function ClientSetValue()
7 {
8 document.Form1.smtSetValue.click();
9 }
10 </script>
11 </HEAD>
12 <body>
13 <form id="Form1" method="post" runat="server">
14 <dir>
15 <input type="text" id="txtSetValue" runat="server" />
16 <input type="button" id="btnSetValue" onclick="ClientSetValue();" value="Set value" />
17 </dir>
18 <input type="submit" onserverclick="SetValue" id="smtSetValue" runat="server" style="DISPLAY:none" value="Submit Query">
19 </form>
20 </body>
21</HTML>
22
2<HTML>
3 <HEAD>
4 <title>WebForm1</title>
5 <script language="javascript">
6 function ClientSetValue()
7 {
8 document.Form1.smtSetValue.click();
9 }
10 </script>
11 </HEAD>
12 <body>
13 <form id="Form1" method="post" runat="server">
14 <dir>
15 <input type="text" id="txtSetValue" runat="server" />
16 <input type="button" id="btnSetValue" onclick="ClientSetValue();" value="Set value" />
17 </dir>
18 <input type="submit" onserverclick="SetValue" id="smtSetValue" runat="server" style="DISPLAY:none" value="Submit Query">
19 </form>
20 </body>
21</HTML>
22
服务器端代码:
1protected void SetValue(object sender, System.EventArgs e)
2 {
3 this.txtSetValue.Value = "The value from server!";
4 }
2 {
3 this.txtSetValue.Value = "The value from server!";
4 }
2.在控件中调用后台函数
该方法在上例中其实已经提到,也是我们很常用的一种方法。
a.在控件的onserverclick,或者onserverchange事件中直接调用服务器端事件,忘了提醒,该事件不要在服务器端声明委托。如上例中的18行就是用的该方法。
3.常规用法。
常规用法就是在服务器端声明委托。如:
1/// <summary>
2 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
3 /// 此方法的内容。
4 /// </summary>
5 private void InitializeComponent()
6 {
7 this.smtSetValue.ServerClick += new System.EventHandler(this.smtSetValue_ServerClick);
8
9 }
2 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
3 /// 此方法的内容。
4 /// </summary>
5 private void InitializeComponent()
6 {
7 this.smtSetValue.ServerClick += new System.EventHandler(this.smtSetValue_ServerClick);
8
9 }
完!