<------------------------页面------------------------------------------>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script>
//以XML求取数据
//参数:
//obj,当前动作的下拉框
//fullName:要填充的下拉框
function XmlPost(obj,fullName)
{
//求取当前下拉框的值
var svalue = obj.value;
//定义要填充的对象
var fullObj = document.all(fullName);
//定义取值地址
var webFileUrl = "?pid=" + svalue;
//定义返回值
var result = "";
//开始取值过程
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlHttp.open("POST", webFileUrl, false);
xmlHttp.send("");
result = xmlHttp.responseText;
//如果有取到值,则根据格式进行拆分
//注意如果选择了第一行"请选择"空行时,是取不到值的,因此多加了一个条件
if(result != "" && svalue != "")
{
//先清空原有的值
fullObj.length=0;
fullObj.options.add(new Option("请选择商圈",""));
//拆分值成数组
var piArray = result.split(",");
//循环数组
for(var i=0;i<piArray.length;i++)
{
//再拆分成ID及名称
var ary1 = piArray[i].toString().split("|");
//逐一添加项
fullObj.options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
else
{
//如果没有取到值,则清空要填充的下拉框的值
fullObj.length = 0;
fullObj.options.add(new Option("请选择商圈",""));
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" >
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server">
</asp:DropDownList>
</div>
</form>
</body>
</html>
<--------------------------------后台代码------------------------------->
Datainfo data = new Datainfo(); //数据库操作类
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataBindList();
//这个是一个所有省的表
string sql1= "select * from shenglist";
DataTable dt = data.SqlExcute_RtnDataTable(sql1,1);
//绑定第一下拉采单
this.DropDownList1.DataSource = dt;
this.DropDownList1.DataValueField = "id";
this.DropDownList1.DataTextField = "name";
this.DropDownList1.DataBind();
//增加onchange事件
this.DropDownList1.Attributes.Add("onchange", "XmlPost(this,'" + this.DropDownList2.ClientID + "');");
}
}
private void DataBindList()
{
string id = this.Request.QueryString["pid"];
if (!(id == null || id == ""))
{//如果id 不为空的话 进行所有城市筛选
this.xmlResponse(id);
}
}
private void xmlResponse(string bid)
{
string strxml = "";
string sql = "select * from shilist where id = " + bid;
DataTable dt = data.SqlExcute_RtnDataTable(sql,1);
//将取到的值形成: ID|名称,ID|名称...这样的形式
if (dt.Rows.Count != 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
strxml += "," + dt.Rows[i]["sqid"].ToString() + "|" + dt.Rows[i]["sqname"].ToString();
}
strxml = strxml.Substring(1);
}
//输出页面
this.Response.Write(strxml);
this.Response.End();
}