<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JavaScript調用Web Services實現無刷新三聯動


    使用微軟提供的webservice.htc實現通過JavaScript調用WebService.
    1.首先從微軟網站上下載webservice.htc,我附件源代碼也包含,不下載也可以
    http://msdn.microsoft.com/workshop/author/webservice/webservice.htc
    2.在網頁BODY中添加一個DIV,實現對webservice.htc的引用

    <div id="service" style="BEHAVIOR:url(webservice.htc)"></div>

    3.編寫JavaScript,實現對WebService的引用:
    function window_onload() 
                {
                    service.useService("/Service1.asmx?WSDL","myselect");
                    str_province=service.myselect.callService(province_Result,"getProvince");
                }
    useService 語法:
    sElementID.useService(sWebServiceURL, sFriendlyName [, oUseOptions])
    useService 參數:

    sElementID Required. The id of the element to which the WebService behavior is attached.
    sWebServiceURL Required. String specifying the URL of the Web Service, using one of the following path types. See the examples section, where several variations of this parameter are shown.
    Web Service file name A Web service file, which has an .asmx file extension. This short form of the URL is sufficient, provided that the Web service is located in the same folder as the Web page using the WebService behavior. In this case, the ?WSDL query string is assumed by the behavior.
    WSDL file name A Web Services Description Language (WSDL) file name. The WSDL file must have a .wsdl file extension.
    Full file path Full path to a WebService (.asmx) or WSDL (.wsdl) file. A file path to a Web Service must include the ?WSDL query string. Either a local file path or a URL can be specified.
    Relative path A relative path to a WebService (.asmx) or WSDL (.wsdl) file. A file path to a Web Service must include the ?WSDL query string.
    sFriendlyName Required. String representing a friendly name for the Web Service URL.
    oUseOptions Optional. An instance of the useOptions object.

    callService語法:
    iCallID = sElementID.sFriendlyName.callService( [oCallHandler], fo, oParam)
    callService參數:
    sElementID Required. The id of the element to which the WebService behavior is attached.
    sFriendlyName Required. The friendly name for the Web Service, which is defined by calling the useService method.
    oCallHandler Optional. Name of a script callback function that handles the results returned from this instance of the method call.
    fo Required. One of the following possible values.
    strFuncName A String representing the name of the remote function being called. The String must be bounded by single or double quotation marks.
    objCall A call object, which has the necessary properties defined to call a remote function.
    oParam Required. One or more comma-delimited parameters, which are passed to the method name specified by fo.

    4.建立WebService,代碼如下
    public class Service1 : System.Web.Services.WebService
        {
            public static string ConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
            SqlConnection conn=new SqlConnection(ConnectionString);

            public Service1()
            {
                //CODEGEN: This call is required by the ASP.NET Web Services Designer
                InitializeComponent();
            }

            Component Designer generated code#region Component Designer generated code
            
            //Required by the Web Services Designer 
            private IContainer components = null;
                    
            /**//// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
            }

            /**//// <summary>
            /// Clean up any resources being used.
            /// </summary>
            protected override void Dispose( bool disposing )
            {
                if(disposing && components != null)
                {
                    components.Dispose();
                }
                base.Dispose(disposing);        
            }
            
            #endregion
            
            getProvince#region getProvince
            [WebMethod(true)]
            public string getProvince()
            {
                string sql="select * from province";
                SqlCommand cmd=new SqlCommand(sql,conn); 

                cmd.Connection.Open();
                SqlDataReader dr=cmd.ExecuteReader();

                string s="";
                while(dr.Read())
                {
                    s += "," + dr["provinceID"].ToString() + "|" + dr["province"].ToString();
                }
                return s;
            }

            #endregion

            getCity#region getCity
            [WebMethod(true)]
            public string getCity(string provinceid)
            {
                string str="select * from city where father = '"+provinceid+"'";
                SqlCommand cmd=new SqlCommand(str,conn); 

                cmd.Connection.Open();
                SqlDataReader dr=cmd.ExecuteReader();

                string s="";
                while(dr.Read())
                {
                    s += "," + dr["cityID"].ToString() + "|" + dr["city"].ToString();
                }
                return s;
            }

            #endregion

            getArea#region getArea
            [WebMethod(true)]
            public string getArea(string cityid)
            {
                string str="select * from area where father='"+cityid+"'";
                SqlCommand cmd=new SqlCommand(str,conn); 

                cmd.Connection.Open();
                SqlDataReader dr=cmd.ExecuteReader();

                string s="";
                while(dr.Read())
                {
                    s += "," + dr["areaID"].ToString() + "|" + dr["area"].ToString();
                }
                return s;
            }
            #endregion
        }
    5.建立測試頁面
    <HTML>
        <HEAD>
            <title>jsWebServices</title>
            <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
            <meta name="CODE_LANGUAGE" Content="C#">
            <meta name="vs_defaultClientScript" content="JavaScript">
            <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
            <script language="javascript">
            <!--            
                var str_province;
                var str_city;
                var str_area;

                function window_onload() 
                {
                    service.useService("/Service1.asmx?WSDL","myselect");
                    str_province=service.myselect.callService(province_Result,"getProvince");
                }

                function province_Result(result)
                {                
                    if(!result.error)
                  {                  
                    document.all("select_province").length=0;                
                    if(result.value.substring(0,1)==",")
                            result.value =result.value.substring(1,result.length);
                    var piArray = result.value.split(',');
                    for(var i=0;i<piArray.length;i++)
                    {
                      var ary1 = piArray[i].toString().split('|');
                      document.all("select_province").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
                    }                
                  }
                }

                function province_onchange() 
                {
                    var province=document.getElementById("select_province");
                    var pindex = province.selectedIndex;
                    var pValue = province.options[pindex].value;
                    var pText  = province.options[pindex].text;
                    str_city=service.myselect.callService(city_Result,"getCity",pValue);
                }

                function city_onchange() 
                {
                    var city=document.getElementById("select_city");
                    var cindex = city.selectedIndex;
                    var cValue = city.options[cindex].value;
                    var cText  = city.options[cindex].text;
                    str_area=service.myselect.callService(area_Result,"getArea",cValue);
                }

                function city_Result(result)
                {
                    if(!result.error)
                  {
                    document.all("select_city").length=0;
                    if(result.value.substring(0,1)==",")
                            result.value =result.value.substring(1,result.length);
                    var piArray = result.value.split(",");
                    for(var i=0;i<piArray.length;i++)
                    {
                      var ary1 = piArray[i].toString().split("|");
                      document.all("select_city").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
                    }
                  }
                }

                function area_Result(result)
                {
                    if(!result.error)
                  {
                    document.all("select_area").length=0;
                    if(result.value.substring(0,1)==",")
                            result.value =result.value.substring(1,result.length);
                    var piArray = result.value.split(",");
                    for(var i=0;i<piArray.length;i++)
                    {
                      var ary1 = piArray[i].toString().split("|");
                      document.all("select_area").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
                    }
                  }
                }
                //-->
            </script>
        </HEAD>
        <body MS_POSITIONING="GridLayout" onload="return window_onload()">
            <div id="service" style="BEHAVIOR:url(webservice.htc)"></div>
            <form id="Form1" method="post" runat="server">
                <SELECT id="select_province" onchange="province_onchange();" style="Z-INDEX: 101; LEFT: 8px; WIDTH: 128px; POSITION: absolute; TOP: 16px">
                    <OPTION selected></OPTION>
                </SELECT><SELECT id="select_city" onchange="city_onchange();" style="Z-INDEX: 102; LEFT: 160px; WIDTH: 128px; POSITION: absolute; TOP: 16px">
                    <OPTION selected></OPTION>
                </SELECT><SELECT id="select_area" style="Z-INDEX: 103; LEFT: 304px; WIDTH: 128px; POSITION: absolute; TOP: 16px">
                    <OPTION selected></OPTION>
                </SELECT>
            </form>
        </body>
    </HTML>
    6.引用webservicers
    7.數據庫腳本
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[area]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[area]
    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[province]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[province]
    GO

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[city]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[city]
    GO

    CREATE TABLE [dbo].[area] (
        [id] [int] NOT NULL ,
        [areaID] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
        [area] [nvarchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,
        [father] [nvarchar] (6) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GO

    CREATE TABLE [dbo].[province] (
        [id] [int] NOT NULL ,
        [provinceID] [nvarchar] (6) COLLATE Chinese_PRC_CI_AS NULL ,
        [province] [nvarchar] (40) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GO

    CREATE TABLE [dbo].[city] (
        [id] [int] NOT NULL ,
        [cityID] [nvarchar] (6) COLLATE Chinese_PRC_CI_AS NULL ,
        [city] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
        [father] [nvarchar] (6) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GO
    8.下載真實數據/Files/singlepine/area.rar
    9.源代碼下載/Files/singlepine/jsWebServices.rar

    posted on 2007-06-20 13:20 chenguo 閱讀(250) 評論(0)  編輯  收藏 所屬分類: AJAX Dev

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    留言簿

    隨筆分類(1)

    文章分類(52)

    好友 小山的博客

    最新隨筆

    最新評論

    主站蜘蛛池模板: 久久精品国产精品亚洲色婷婷| 国产免费午夜a无码v视频| 久久国产精品免费观看| a毛看片免费观看视频| 99在线观看视频免费| 91免费资源网站入口| 免费jjzz在在线播放国产| 亚洲AV无码日韩AV无码导航| 最近的2019免费中文字幕| 亚洲精品色午夜无码专区日韩| 亚洲国产美女精品久久久久| 国产精品免费观看视频| 1000部无遮挡拍拍拍免费视频观看 | 亚洲国产精品一区二区久久| 亚洲av极品无码专区在线观看| 色多多A级毛片免费看| 野花高清在线电影观看免费视频| 91亚洲国产成人久久精品 | 男女拍拍拍免费视频网站| 国产成人免费高清激情视频| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 免费看少妇作爱视频| 337p日本欧洲亚洲大胆色噜噜| 日韩电影免费在线观看网址| 无码人妻一区二区三区免费| 亚洲欧洲免费无码| 99久久国产免费中文无字幕| 亚洲国产视频网站| 麻豆国产人免费人成免费视频| 免费无码婬片aaa直播表情| 国产亚洲精品国产| 免费做爰猛烈吃奶摸视频在线观看| 亚洲国产午夜精品理论片在线播放 | 亚洲毛片一级带毛片基地| 最近中文字幕免费大全| 2022年亚洲午夜一区二区福利| 在线观看免费人成视频色| 老司机亚洲精品影院在线观看| 国产一卡2卡3卡4卡2021免费观看 国产一卡2卡3卡4卡无卡免费视频 | 亚洲国产精品久久久久婷婷软件| 国产黄色免费网站|