`

XmlHttp实现无刷新三联动ListBox

    博客分类:
  • C#
阅读更多
1.html
<HTML>
    <HEAD>
        <title>XmlHttp实现无刷新三联动ListBox</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">
            <!--
                //以XML求取ListBox2的数据
                function XmlPost2(obj)
                {
                  var svalue = obj.value;
                  var webFileUrl = "?povinceid=" + svalue;
                  var result = "";
                  var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
                  xmlHttp.open("POST", webFileUrl, false);
                  xmlHttp.send("");
                  result = xmlHttp.responseText;
                  
                  if(result != "")
                  {
                    document.all("ListBox2").length=0;
                    var piArray = result.split(",");
                    for(var i=0;i<piArray.length;i++)
                    {
                      var ary1 = piArray[i].toString().split("|");
                      document.all("ListBox2").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
                    }
                  }
                  else
                  {
                    alert(result);
                  }
                }
                //以XML求取ListBox3的数据
                function XmlPost3(obj)
                {
                  var svalue = obj.value;
                  var webFileUrl = "?cityid=" + svalue;
                  var result = "";
                  var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
                  xmlHttp.open("POST", webFileUrl, false);
                  xmlHttp.send("");
                  result = xmlHttp.responseText;
                  
                  if(result != "")
                  {
                    document.all("ListBox3").length=0;
                    var piArray = result.split(",");
                    for(var i=0;i<piArray.length;i++)
                    {
                      var ary1 = piArray[i].toString().split("|");
                      document.all("ListBox3").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
                    }
                  }
                  else
                  {
                    alert(result);
                  }
                }                
            //-->
        </SCRIPT>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <asp:ListBox id="ListBox1" style="Z-INDEX: 101; LEFT: 24px; POSITION: absolute; TOP: 16px" runat="server"
                Height="448px" Width="200px"></asp:ListBox>
            <asp:ListBox id="ListBox2" style="Z-INDEX: 102; LEFT: 352px; POSITION: absolute; TOP: 24px" runat="server"
                Height="432px" Width="168px"></asp:ListBox>
            <asp:ListBox id="ListBox3" style="Z-INDEX: 103; LEFT: 568px; POSITION: absolute; TOP: 24px" runat="server"
                Height="424px" Width="200px"></asp:ListBox>
        </form>
    </body>
</HTML>


2.cs代码
public class WebForm2 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.ListBox ListBox1;
        protected System.Web.UI.WebControls.ListBox ListBox2;
        protected System.Web.UI.WebControls.ListBox ListBox3;
    
        public static string ConnectionString=System.Configuration .ConfigurationSettings .AppSettings["ConnectionString"];
    
        GetDataSet#region GetDataSet
        public static DataSet GetDataSet(string sql)
        {
            SqlDataAdapter    sda =new SqlDataAdapter(sql,ConnectionString);
            DataSet ds=new DataSet();
            sda.Fill(ds);
            return ds;
        }
        #endregion

        property#region property
        private string povinceid
        {
            get
            {
                if(ViewState["povinceid"]!=null && ViewState["povinceid"].ToString()!="")
                {
                    return ViewState["povinceid"].ToString();
                }
                else
                {
                    if(Request["povinceid"]!=null && Request["povinceid"].ToString()!="")
                    {
                        return Request["povinceid"];
                    }
                    else
                    {
                        return "";
                    }
                }
            }
            set
            {
                ViewState["povinceid"]=value;
            }
        }
        private string cityid
        {
            get
            {
                if(ViewState["cityid"]!=null && ViewState["cityid"].ToString()!="")
                {
                    return ViewState["cityid"].ToString();
                }
                else
                {
                    if(Request["cityid"]!=null && Request["cityid"].ToString()!="")
                    {
                        return Request["cityid"];
                    }
                    else
                    {
                        return "";
                    }
                }
            }
            set
            {
                ViewState["povinceid"]=value;
            }
        }
        #endregion

        Page_Load#region Page_Load
        private void Page_Load(object sender, System.EventArgs e)
        {
            if(!this.IsPostBack)
          {
            this.down1_bind();
                this.ListBox1.Attributes.Add("onchange","XmlPost2(this);");
                this.ListBox2.Attributes.Add("onchange","XmlPost3(this);");
          }
          if(povinceid != "")
          {
            this.down2_bind(povinceid);
          }
            if(cityid != "")
          {
            this.down3_bind(cityid);
          }
        }
        
        #endregion

        down2_bind#region down2_bind
        private void down2_bind(string id)
        {
          string mystr = "";
          string sql = "select cityID,city from city where father = '" + id + "'";
          DataSet ds = GetDataSet(sql);

          if(ds.Tables[0].Rows.Count != 0)
          {
            for(int i=0;i<ds.Tables[0].Rows.Count;i++)
            {
              mystr += "," + ds.Tables[0].Rows[i][0].ToString() + "|" + ds.Tables[0].Rows[i][1].ToString();
            }
            mystr = mystr.Substring(1);
          }
          this.Response.Write(mystr);
          this.Response.End();
        }
        #endregion

        down3_bind#region down3_bind
        private void down3_bind(string id)
        {
          string mystr = "";
          string sql = "select areaID,area from area where father = '" + id + "'";
          DataSet ds = GetDataSet(sql);

          if(ds.Tables[0].Rows.Count != 0)
          {
            for(int i=0;i<ds.Tables[0].Rows.Count;i++)
            {
              mystr += "," + ds.Tables[0].Rows[i][0].ToString() + "|" + ds.Tables[0].Rows[i][1].ToString();
            }
            mystr = mystr.Substring(1);
          }
          this.Response.Write(mystr);
          this.Response.End();
        }

        #endregion
        
        down1_bind#region down1_bind
        private void down1_bind()
        {
          string sql = "select provinceID,province from povince";
          DataSet ds = GetDataSet(sql);
          this.ListBox1.DataSource = ds;
          this.ListBox1.DataValueField = "provinceID";
          this.ListBox1.DataTextField = "province";
          this.ListBox1.DataBind();          
        }

        #endregion

        Web Form Designer generated code#region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
        
        /**//// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {    
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
    }

3.数据库下载http://dl.iteye.com/topics/download/c829bf89-42cf-355d-95bb-a4af8a0f8ee5
4.数据库脚本(3,4随便一个就可以)
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].[city]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[city]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[povince]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[povince]
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].[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

CREATE TABLE [dbo].[povince] (
    [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
分享到:
评论

相关推荐

    三级联动ListBox无刷新读取XML文档

    XmlHttp实现无刷新三联动ListBox 三级ListBox分别描述一级资源名,二级资源名和三级资源名。 如,当第一级选影视综艺时,第二就显示影视综艺的所有子类名,如电影,连续剧等。当再选电影时,第三级就显示出所有电影...

    无刷新三级联动ListBox

    XmlHttp实现无刷新三联动ListBox 三级ListBox分别描述全国省名,市名和区名 如,当第一级选广东省时,第二就显示广东省的所有市名,当再选广州市时,第三级就显示出所 有广州的区名。 全国省名,市名和区名分别保存...

    利用XMLHTTP无刷新添加数据之Post篇

    利用XMLHTTP无刷新添加数据之Post篇.chm利用XMLHTTP无刷新添加数据之Post篇.chm

    XMLHttp无刷新JSP聊天室

    XMLHttp无刷新JSP聊天室,历史上最小的XMLHttp无刷新JSP聊天室,基本上没有什么功能,此程序只为学习使用无刷新技术者使用。

    XMLHTTP无刷新自动实时更新数据

    XMLHTTP无刷新自动实时更新数据是一种常见的Web应用程序技术,它利用了AJAX(Asynchronous JavaScript and XML)的核心组件——XMLHttpRequest对象,实现了网页在不重新加载整个页面的情况下,与服务器进行交互并...

    xmlhttp无刷新

    ### 标题:xmlhttp无刷新 #### 知识点1:XMLHttpRequest对象 - **定义**:`XMLHttpRequest`是JavaScript的一个内置对象,它提供了与服务器交互的功能,可以在不重新加载整个页面的情况下发送异步请求并接收响应。 -...

    XMLHTTP实现HTTPS+post登录

    前几天群里有个朋友问我怎么登录BAIDU,我们... ... ... 然后看到XMLHTTP可以模拟发送HTTPS的数据包,于是便有了以下函数 //构造数据包 strcat(buf,"tpl_ok=&next;_target=&tpl=mn&skip;... XmlHttp(MyLogin_URL,"POST",buf);

    清水阁XMLHttp实现Asp生成HTML静态文件(带进度条)

    清水阁出品,使用XMLHttp对象实现Asp生成HTML静态文件,支持生成进度条显示,以前发布过asp生成静态文件的模块例子,不过那是基于模板替换的方法实现的,这个是用XMLHttp的方法来实现的,页面很简单,直接执行...

    无刷新技术的实现方式

    首先,JavaScript 是一种基础的实现无刷新技术的方式。例如,如上所述,通过在HTML页面中添加JavaScript函数,可以定时地向服务器请求数据并更新页面的特定部分。在示例1中,`GetData()`函数被用来更改`DataLoad`...

    c实现无刷新dropdownlist联动效果

    "C实现无刷新DropdownList联动效果" 在Web应用中,实现DropdownList联动效果是一个非常常见的需求。所谓DropdownList联动,就是在选一个DropdownList时,使另外一个DropdownList的内容更新(如选省份时显示所属城市...

    c#实现无刷新的DropdownList联动效果.pdf

    实现无刷新的DropdownList联动效果 在 Web 应用程序中,实现无刷新的DropdownList联动效果是一个常见的问题。通过使用JavaScript和Ajax技术,可以实现无刷新的DropdownList联动效果,提高用户体验。下面是实现无...

    清水阁原创利用XMLHttp实现asp生成HTML静态文件(带生成进度条) v.rar

    今天这个是用XMLHttp的方法来实现的,页面很简单,直接执行html.asp文件就可以了, 再次强调这只是个方法,不是完整的ASp生成html的网站,是供网友学习时使用…… 文件说明: conn.asp 数据库链接文件 ...

    xmlhttp说明文档,xmlhttp中文帮助文档,chm格式

    配合JavaScript可以实现页面数据在无刷新下的定时数据更新,如果应用在聊天室、文字直播上可以取得较好的视觉效果。 使用范例: vb中下载页面源代码的方法: Dim XmlHttp As Object Set XmlHttp = CreateObject(...

    ajax实现无刷新

    ### AJAX 实现无刷新技术详解 #### 一、引言 在现代Web开发中,提升用户体验是至关重要的。其中一种非常实用的技术就是AJAX(Asynchronous JavaScript and XML),它允许网页在不重新加载整个页面的情况下与服务器...

    利用XMLHTTP技术进行资源整合的研究与实现

    ### 利用XMLHTTP技术进行资源整合的研究与实现 #### 一、引言 随着信息技术的飞速发展,尤其是互联网技术的广泛应用,Web数据库系统已成为学校信息化建设中的重要组成部分。然而,在这一过程中,学校往往面临着...

    Ajax无刷新实现步骤

    ### Ajax无刷新实现步骤 #### 一、简介 Ajax(Asynchronous JavaScript and ...以上就是 Ajax 实现无刷新加载的基本步骤。通过这些步骤,我们可以实现在不重新加载整个页面的情况下局部更新网页内容,提高用户体验。

    xmlhttp.rar_XMLHTTP delphi_delphi xmlHt_delphi xmlhttp_xmlhttp

    XMLHTTP是Delphi编程中用于实现异步HTTP通信的一个组件,它是Delphi集成的 Indy 或 WinInet 库的一部分。这个“xmlhttp.rar”压缩包包含的资源是关于如何在Delphi环境中使用XMLHTTP组件来从网络获取数据,特别是通过...

    Asp+XmlHttp实现RssReader

    如何生成动态的XML文档,介于动态文档是ASP格式的,所以必须借助FSO进行XML文件的生成...我这里上传的资源里面包含了用Asp+XmlHttp实现RssReader功能,用ASP生成XML数据文档(RSS订阅)两个功能的代码。希望能给你帮助

    XMLHTTP

    XMLHTTP,全称为...总之,XMLHTTP对象是现代Web开发中的重要工具,它实现了浏览器与服务器间的无刷新通信,从而创建出更动态、更响应式的网页应用。结合ASP和数据库,我们可以构建出高效的数据驱动的Web服务。

    xmlhttp.rar_刷新 数据库

    "xmlhttp.rar_刷新 数据库"这个压缩包文件很可能包含了一个关于如何使用XHR对象从数据库获取数据的示例。 在Web应用中,用户通常希望页面能够快速响应,而无需等待整个页面重新加载。这就是XHR发挥作用的地方。...

Global site tag (gtag.js) - Google Analytics