Ajax简单示例之改变下拉框动态生成表格

本文介绍了一个使用ASP.NET和AJAX实现动态加载城市列表的例子。通过下拉列表选择省份后,利用AJAX技术从服务器获取对应城市的HTML表格并显示。涉及的技术包括HTML、JavaScript、ASP.NET及SQL Server数据库操作。

 

1.建立一个aspx页面,html代码

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript">
        var xmlHttp;

        function createXMLHttpRequest() 
        {
            if (window.ActiveXObject) 
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
 
            else if (window.XMLHttpRequest) 
            {
                xmlHttp = new XMLHttpRequest();
            }

        }

            
        function startRequest() 
        {
            //debugger;
            var ProvinceID=document.getElementById("DropDownList1");           
            createXMLHttpRequest();
            xmlHttp.onreadystatechange = handleStateChange;
            xmlHttp.open("GET", "?ProvinceID="+ProvinceID.value, true);
            xmlHttp.send(null);
        }

            
        function handleStateChange() 
        {
            if(xmlHttp.readyState == 4) //0(未初始化);1(正在装载);2 (装载完毕);3 (交互中);4 (完成) 
            {
                if(xmlHttp.status == 200) //200(OK);404(not found)
                {
                    document.getElementById("gridiv").innerHTML=xmlHttp.responseText;
                }

            }

        }

        
</script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="DropDownList1" runat="server">
        </asp:DropDownList>   
    </div>
    <div id ="gridiv"></div>
    </form>
</body>
</html>
2.cs代码
using System.Data.SqlClient;

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            this.DropDownList1.Attributes.Add("onchange", "return startRequest();");
            ListProvince();
            if (ProvinceID != "")
            {
                GetCityByProvinceID(ProvinceID);
            }

        }

    }


    #region property
    private string ProvinceID
    {
        get
        {
            if (Request["ProvinceID"] != null && Request["ProvinceID"].ToString() != "")
            {
                return Request["ProvinceID"];
            }

            else
            {
                return "";
            }

        }

    }

    #endregion


    #region GetDataSet
    private DataSet GetDataSet(string sql)
    {
        string constring=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
        SqlDataAdapter    sda =new SqlDataAdapter(sql,constring);
        DataSet ds=new DataSet();
        sda.Fill(ds);
        return ds;
    }

    #endregion


    #region GetCityByProvinceID
    private void GetCityByProvinceID(string ProvinceID)
    {
        string connStr = ConfigurationSettings.AppSettings["ConnectionString"];
        SqlConnection conn = new SqlConnection(connStr);
        string sql = "select * from city where father='" + ProvinceID + "'";
        SqlCommand cmd = new SqlCommand(sql, conn);
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();

        string s = @"<table cellspacing='0' cellpadding='4' border='0' id='GridView1' style='color:#333333;border-collapse:collapse;'>";
        s+="<tr style='color:White;background-color:#990000;font-weight:bold;'>";
            s+="<th scope='col'>流水号</th><th scope='col'>代号</th><th scope='col'>城市</th></tr>";
        int m = 0;
        while (dr.Read())
        {
            if (m % 2 == 0)
            {
                s += "<tr style='color:#333333;background-color:#FFFBD6;'>";
            }

            else
            {
                s += "<tr style='color:#333333;background-color:White;'>";
            }

            m++;
            s += "<td>" + dr["id"] + "</td>";
            s += "<td>" + dr["cityID"] + "</td>";
            s += "<td>" + dr["city"] + "</td>";
            s += "</tr>";
        }
        
        s+="</table>";
        dr.Close();
        conn.Close();
        this.Response.Write(s);
        this.Response.End();
    }

    #endregion


    #region ListProvince
    private void ListProvince()
    {
        string sql = "select * from province";
        DataSet ds = GetDataSet(sql);
        DropDownList1.DataSource = ds;
        DropDownList1.DataTextField = "province";
        DropDownList1.DataValueField = "provinceID";
        DropDownList1.DataBind();
    }

    #endregion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值