原本这是个很简单的问题,但不知道的话,却很难想到。
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
<%@ 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

服务器端代码:
1
protected void SetValue(object sender, System.EventArgs e)
2
{
3
this.txtSetValue.Value = "The value from server!";
4
}
protected void SetValue(object sender, System.EventArgs e)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
}
/// <summary>2
/// 设计器支持所需的方法 - 不要使用代码编辑器修改3
/// 此方法的内容。4
/// </summary>5
private void InitializeComponent()6
{ 7
this.smtSetValue.ServerClick += new System.EventHandler(this.smtSetValue_ServerClick);8

9
}完!



浙公网安备 33010602011771号