第三部分 02 在ASP.NET AJAX应用程序中使用JavaScript异步调用Page的方法
第三部分01中我们将方法写在Web服务中,但通常我们会将一些方法写在页面的.cs文件中,那么,如何使用JavaScript异步调用这些方法呢?下面给出解决方案
一 Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Services;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public static string SayHelloFromPage(string strName)
{
return string.Format("Hello {0} !", strName);
}
}
二 Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
function callService()
{
var name = $get("text1").value;
PageMethods.SayHelloFromPage(name, onSayHelloSucceeded);
}
function onSayHelloSucceeded(result)
{
$get("result").innerHTML = result;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" enablepagemethods="true">
</asp:ScriptManager>
<div id="div1">
<input id="text1" type="text" />
<input id="button1" type="button" value="Say Hello" onclick="callService()" />
<div id="result"></div>
</div>
</form>
</body>
</html>
三 总结
1. ScriptManager的属性enablepagemethods要设置为True
2. 在客户端使用如下JavaScript语法调用该页面方法
PageMethods.[MethodName](param1, param2 …, callbackFunction)
3. 方法要声明为public static
4. 添加using System.Web.Services命名空间;
5. 方法要添加[WebMethod]
四 参考文章
http://www.cnblogs.com/dflying/archive/2007/06/05/771490.html
浙公网安备 33010602011771号