杞人忧天上掉下个林妹妹

穿越旷野的妹妹啊,慢些走;请不要用你的沉默告诉我,你不回头!

导航

使用AJAX.NET2.0注意事项

1、使用AJAX.NET最好在建立项目时建立ASP.NET AJAX-Enabled Web Site项目,建立ASP.NET AJAX-Enabled Web Site项目时,会自动配置web.config(web.config必须做相应的配置),这样我们就不需要再手动配置;
如果不做web.config的配置,则在客户端会提示“Sys未定义”
ASP.NET AJAX 语法的语句不能写在Head里面,否则将会出现“Sys not defined ”之类的错误
2、ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问Web Service,所有需要支持ASP.NET AJAX的ASP.NET页面上有且只能有一个ScriptManager控件。在ScriptManager控件中我们可以指定需要的脚本库,或者指定通过JS来调用的Web Service,还可以指定页面错误处理等。
ASP.NET AJAX中,由于一个ASPX页面上只能有一个ScriptManager控件,所以在有Master-Page的情况下,如果需要在Master-PageContent-Page中需要引入不同的脚本或注册不同的WebService时,就需要在Content-page中使用ScriptManagerProxy,而不是ScriptManagerScriptManagerProxyScriptManager是两个非常相似的控件。

3、定义AJAX调用的Web Service时,需要引入空间using System.Web.Script.Services;并且在类定义前加[ScriptService]。如果不做该步骤操作,则在客户端会提示“XXXXXX未定义”


以下为一个简单的示例:
(1)DataBaseInfo.cs 
/// <summary>
/// Web Service返回的数据类型
/// </summary>
public struct DataBaseInfo
{
    private  string _v1;
    private double _v2;
    private string _des;

    public DataBaseInfo(string v1, double v2, string des)
    {
        this._v1 = v1;
        this._v2 = v2;
        this._des = des;
    }

    public string v1
    {
        get { return (_v1); }
    }
    public double v2
    {
        get { return (_v2); }
    }
    public string des
    {
        get { return (_des); }
    }
}
(2)WebServiceSample.cs 
using System.Web.Script.Services;

/// <summary>
/// Ajax.net调用的Web Service
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WebServiceSample : System.Web.Services.WebService {

    public WebServiceSample () {    }

    [WebMethod]
    public DataBaseInfo HelloWorld(string content)
    {
        return (new DataBaseInfo("成功返回", 100, content));
    }
(3)母版页
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager id="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </div>
    </form>
</body>
</html>
(4)AJAX.NET调用页
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <asp:ScriptManagerProxy id="ScriptManagerProxy1" runat="server">
        <services>
            <asp:ServiceReference Path="~/WebService/WebServiceSample.asmx"></asp:ServiceReference>
        </services>
        <scripts>
            <asp:ScriptReference Path="~/JS/SVGJS.js"></asp:ScriptReference>
        </scripts>
    </asp:ScriptManagerProxy>

    &nbsp;<div>
        <input type="text" id="inputName" size="20" />
        <input id="button" type="button" value="调 用" onclick="return OnbuttonGo_click()" />
    </div>
</asp:Content>

posted on 2007-06-13 17:45  杞人  阅读(595)  评论(0编辑  收藏  举报