aspx页面
<%
...
@ Page language="c#" Codebehind="adduser.aspx.cs" AutoEventWireup="false" Inherits="Gongster.user.adduser" EnableEventValidation="false"
%>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< title > adduser </ title >
< meta content ="Microsoft Visual Studio .NET 7.1" name ="GENERATOR" >
< meta content ="C#" name ="CODE_LANGUAGE" >
< meta content ="JavaScript" name ="vs_defaultClientScript" >
< meta content ="http://schemas.microsoft.com/intellisense/ie5" name ="vs_targetSchema" >
< script language ="javascript" > ...
//jb函数会根据不同的浏览器初始化个xmlhttp对象
function jb()
...{
var A=null;
try
...{
A=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
...{
try
...{
A=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
...{
A=null
}
}
if ( !A && typeof XMLHttpRequest != "undefined" )
...{
A=new XMLHttpRequest()
}
return A
}
//下面Go函数是父列表框改变的时候调用,参数是选择的条目
function Go(obj)
...{
//得到选择框的下拉列表的value
var svalue = obj.value;
//定义要处理数据的页面
var weburl = "adduser.aspx?parent_id="+svalue;
//初始化个xmlhttp对象
var xmlhttp = jb();
//提交数据,第一个参数最好为get,第三个参数最好为true
xmlhttp.open("get",weburl,true);
// alert(xmlhttp.responseText);
//如果已经成功的返回了数据
xmlhttp.onreadystatechange=function()
...{
if(xmlhttp.readyState==4)//4代表成功返回数据
...{
var result = xmlhttp.responseText;//得到服务器返回的数据
//先清空ddlC的所有下拉项
document.getElementById("ddlC").length = 0;
//给ddlC加个全部型号的,注意是Option不是option
document.getElementById("ddlC").options.add(new Option("请选择","0"));
if(result!="")//如果返回的数据不是空
...{
//把收到的字符串按照,分割成数组
var allArray = result.split(",");
//循环这个数组,注意是从1开始,因为收到的字符串第一个字符是,号,所以分割后第一个数组为空
for(var i=1;i<allArray.length;i++)
...{
//在把这个字符串按照|分割成数组
var thisArray = allArray[i].split("|");
//为ddlC添加条目
document.getElementById("ddlC").options.add(new Option(thisArray[1].toString(),thisArray[0].toString()));
}
}
}
}
//发送数据,请注意顺序和参数,参数一定为null或者""
xmlhttp.send(null);
}
</ script >
</ HEAD >
< body MS_POSITIONING ="GridLayout" >
< form id ="Form1" method ="post" runat ="server" >
< TABLE id ="Table1" style ="Z-INDEX: 101; LEFT: 8px; WIDTH: 656px; POSITION: absolute; TOP: 8px; HEIGHT: 620px"
cellSpacing ="1" cellPadding ="1" border ="0" >
< TR >
< TD style ="WIDTH: 71px; HEIGHT: 17px" >< FONT face ="宋体" > 所在地 </ FONT ></ TD >
< TD style ="HEIGHT: 17px" >< asp:dropdownlist id ="ddlS" runat ="server" onchange ="Go(this)" ></ asp:dropdownlist >< asp:dropdownlist id ="ddlC" runat ="server" ></ asp:dropdownlist ></ TD >
< TD style ="HEIGHT: 17px" >< FONT face ="宋体" ></ FONT ></ TD >
</ TR >
< TR >
< TD align ="center" colSpan ="3" >< FONT face ="宋体" >< asp:button id ="btnOk" runat ="server" Text ="确定并提交" Width ="152px" ></ asp:button ></ FONT ></ TD >
</ TR >
</ TABLE >
</ form >
</ body >
</ HTML >
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< title > adduser </ title >
< meta content ="Microsoft Visual Studio .NET 7.1" name ="GENERATOR" >
< meta content ="C#" name ="CODE_LANGUAGE" >
< meta content ="JavaScript" name ="vs_defaultClientScript" >
< meta content ="http://schemas.microsoft.com/intellisense/ie5" name ="vs_targetSchema" >
< script language ="javascript" > ...
//jb函数会根据不同的浏览器初始化个xmlhttp对象
function jb()
...{
var A=null;
try
...{
A=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
...{
try
...{
A=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
...{
A=null
}
}
if ( !A && typeof XMLHttpRequest != "undefined" )
...{
A=new XMLHttpRequest()
}
return A
}
//下面Go函数是父列表框改变的时候调用,参数是选择的条目
function Go(obj)
...{
//得到选择框的下拉列表的value
var svalue = obj.value;
//定义要处理数据的页面
var weburl = "adduser.aspx?parent_id="+svalue;
//初始化个xmlhttp对象
var xmlhttp = jb();
//提交数据,第一个参数最好为get,第三个参数最好为true
xmlhttp.open("get",weburl,true);
// alert(xmlhttp.responseText);
//如果已经成功的返回了数据
xmlhttp.onreadystatechange=function()
...{
if(xmlhttp.readyState==4)//4代表成功返回数据
...{
var result = xmlhttp.responseText;//得到服务器返回的数据
//先清空ddlC的所有下拉项
document.getElementById("ddlC").length = 0;
//给ddlC加个全部型号的,注意是Option不是option
document.getElementById("ddlC").options.add(new Option("请选择","0"));
if(result!="")//如果返回的数据不是空
...{
//把收到的字符串按照,分割成数组
var allArray = result.split(",");
//循环这个数组,注意是从1开始,因为收到的字符串第一个字符是,号,所以分割后第一个数组为空
for(var i=1;i<allArray.length;i++)
...{
//在把这个字符串按照|分割成数组
var thisArray = allArray[i].split("|");
//为ddlC添加条目
document.getElementById("ddlC").options.add(new Option(thisArray[1].toString(),thisArray[0].toString()));
}
}
}
}
//发送数据,请注意顺序和参数,参数一定为null或者""
xmlhttp.send(null);
}
</ script >
</ HEAD >
< body MS_POSITIONING ="GridLayout" >
< form id ="Form1" method ="post" runat ="server" >
< TABLE id ="Table1" style ="Z-INDEX: 101; LEFT: 8px; WIDTH: 656px; POSITION: absolute; TOP: 8px; HEIGHT: 620px"
cellSpacing ="1" cellPadding ="1" border ="0" >
< TR >
< TD style ="WIDTH: 71px; HEIGHT: 17px" >< FONT face ="宋体" > 所在地 </ FONT ></ TD >
< TD style ="HEIGHT: 17px" >< asp:dropdownlist id ="ddlS" runat ="server" onchange ="Go(this)" ></ asp:dropdownlist >< asp:dropdownlist id ="ddlC" runat ="server" ></ asp:dropdownlist ></ TD >
< TD style ="HEIGHT: 17px" >< FONT face ="宋体" ></ FONT ></ TD >
</ TR >
< TR >
< TD align ="center" colSpan ="3" >< FONT face ="宋体" >< asp:button id ="btnOk" runat ="server" Text ="确定并提交" Width ="152px" ></ asp:button ></ FONT ></ TD >
</ TR >
</ TABLE >
</ form >
</ body >
</ HTML >
后台代码
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class adduser : System.Web.UI.Page
... {
private SqlConnection con;
private SqlDataAdapter da;
private DataSet ds;
protected void Page_Load(object sender, EventArgs e)
...{
if (!IsPostBack)
...{
con=new SqlConnection("server=.;database=evs;uid=sa;pwd=wq");
da=new SqlDataAdapter("select * from province",con);
ds = new DataSet();
da.Fill(ds, "province");
ds.Tables["province"].DefaultView.Sort = "id ASC";
ddlS.DataSource = ds.Tables["province"].DefaultView;
ddlS.DataValueField = "id";
ddlS.DataTextField = "province";
ddlS.DataBind();
}
BindDrop();
}
protected void Button1_Click(object sender, EventArgs e)
...{
Response.Write(ddlS.SelectedItem.Text);
Response.Write(ddlC.SelectedItem.Text);
}
protected void BindDrop()
...{
string str = Request.QueryString["parent_id"];
string str1 = ddlS.SelectedValue;
Response.Write(str1);
//如果str加个字符串!=原来的字符串则说明触发过ddlS的onchange事件
if ((str + "abc") != "abc")
...{
//绑定 ddlC控件
BindChild(str);//把传来的父DropDownList的value做为参数
}
else
BindParent(str1);
}
protected void BindParent(string str)
...{
//如果是第一次请求或者是刷新这个页面则根据ddlS的值来选择
//把参数转化成int
int i = Convert.ToInt32(str);
ddlC.Items.Clear();
ddlC.Items.Add(new ListItem("请选择", "0"));
//得到数据库连接字符串
string connStr = "server=.;database=evs;uid=sa;pwd=wq";
//初始化个conn对象
SqlConnection conn = new SqlConnection(connStr);
//数据库语句
string commStr = string.Format("select city,provid from city where provid={0}", i);
//建立数据库命令对象
SqlCommand comm = new SqlCommand(commStr, conn);
//打开数据库
conn.Open();
//执行命令
SqlDataReader dr = comm.ExecuteReader();
//循环dr,给ddlS添加条目
while (dr.Read())
...{
ddlC.Items.Add(new ListItem(dr[0].ToString(), dr[1].ToString()));
//也可以这样
//ddlS.Items.Add(new ListItem(dr["phone_text"].ToString(),dr["phone_value"].ToString()));
}
ddlC.ClearSelection();
ddlS.Items[0].Selected = false;
//添加下面这话的意思是当点提交按钮提交窗体的时候第二个ddlC的状态能够得到保存
ddlC.SelectedValue = Request.Form["ddlC"];
dr.Close();
conn.Close();
}
protected void BindChild(string str)
...{
//通过js给包括dropdownlist任何控件添加的内容不会被保存状态
//把参数转化成int
int i = Convert.ToInt32(str);
string result = "";
Response.Clear();
string connStr = "server=.;database=evs;uid=sa;pwd=wq";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand comm = conn.CreateCommand();
string commStr = string.Format("select city,provid from city where provid={0}", i);
comm.CommandText = commStr;
conn.Open();
SqlDataReader dr = comm.ExecuteReader();
while (dr.Read())
...{
result += "," + dr[1].ToString() + "|" + dr[0].ToString();
}
Response.Write(result);
Response.Flush();
Response.Close();
dr.Close();
conn.Close();
}
protected void Button1_Click1(object sender, EventArgs e)
...{
Response.Write(ddlS.SelectedItem.Text);
Response.Write(ddlC.SelectedItem.Text);
}
}
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class adduser : System.Web.UI.Page
... {
private SqlConnection con;
private SqlDataAdapter da;
private DataSet ds;
protected void Page_Load(object sender, EventArgs e)
...{
if (!IsPostBack)
...{
con=new SqlConnection("server=.;database=evs;uid=sa;pwd=wq");
da=new SqlDataAdapter("select * from province",con);
ds = new DataSet();
da.Fill(ds, "province");
ds.Tables["province"].DefaultView.Sort = "id ASC";
ddlS.DataSource = ds.Tables["province"].DefaultView;
ddlS.DataValueField = "id";
ddlS.DataTextField = "province";
ddlS.DataBind();
}
BindDrop();
}
protected void Button1_Click(object sender, EventArgs e)
...{
Response.Write(ddlS.SelectedItem.Text);
Response.Write(ddlC.SelectedItem.Text);
}
protected void BindDrop()
...{
string str = Request.QueryString["parent_id"];
string str1 = ddlS.SelectedValue;
Response.Write(str1);
//如果str加个字符串!=原来的字符串则说明触发过ddlS的onchange事件
if ((str + "abc") != "abc")
...{
//绑定 ddlC控件
BindChild(str);//把传来的父DropDownList的value做为参数
}
else
BindParent(str1);
}
protected void BindParent(string str)
...{
//如果是第一次请求或者是刷新这个页面则根据ddlS的值来选择
//把参数转化成int
int i = Convert.ToInt32(str);
ddlC.Items.Clear();
ddlC.Items.Add(new ListItem("请选择", "0"));
//得到数据库连接字符串
string connStr = "server=.;database=evs;uid=sa;pwd=wq";
//初始化个conn对象
SqlConnection conn = new SqlConnection(connStr);
//数据库语句
string commStr = string.Format("select city,provid from city where provid={0}", i);
//建立数据库命令对象
SqlCommand comm = new SqlCommand(commStr, conn);
//打开数据库
conn.Open();
//执行命令
SqlDataReader dr = comm.ExecuteReader();
//循环dr,给ddlS添加条目
while (dr.Read())
...{
ddlC.Items.Add(new ListItem(dr[0].ToString(), dr[1].ToString()));
//也可以这样
//ddlS.Items.Add(new ListItem(dr["phone_text"].ToString(),dr["phone_value"].ToString()));
}
ddlC.ClearSelection();
ddlS.Items[0].Selected = false;
//添加下面这话的意思是当点提交按钮提交窗体的时候第二个ddlC的状态能够得到保存
ddlC.SelectedValue = Request.Form["ddlC"];
dr.Close();
conn.Close();
}
protected void BindChild(string str)
...{
//通过js给包括dropdownlist任何控件添加的内容不会被保存状态
//把参数转化成int
int i = Convert.ToInt32(str);
string result = "";
Response.Clear();
string connStr = "server=.;database=evs;uid=sa;pwd=wq";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand comm = conn.CreateCommand();
string commStr = string.Format("select city,provid from city where provid={0}", i);
comm.CommandText = commStr;
conn.Open();
SqlDataReader dr = comm.ExecuteReader();
while (dr.Read())
...{
result += "," + dr[1].ToString() + "|" + dr[0].ToString();
}
Response.Write(result);
Response.Flush();
Response.Close();
dr.Close();
conn.Close();
}
protected void Button1_Click1(object sender, EventArgs e)
...{
Response.Write(ddlS.SelectedItem.Text);
Response.Write(ddlC.SelectedItem.Text);
}
}