再谈 N 个 ASP.net DropDownList 无刷新联动菜单
再谈 N 个 ASP.net DropDownList 无刷新联动菜单 <script language='javascript'>
function load(state)
{
var drp2 = document.getElementById('DropDownList2');
for(var i=0;i<=drp2.options.length-1;i++)
{
drp2.remove(i);
}
var oHttpReq = new ActiveXObject('MSXML2.XMLHTTP'); //发送请求
var oDoc = new ActiveXObject('MSXML2.DOMDocument'); //响应结果
var state=document.getElementById('DropDownList1').value;
oHttpReq.open('post','webform2.aspx?state='+state, false);
oHttpReq.send('');
result = oHttpReq.responseText;
oDoc.loadXML(result);
// items = oDoc.selectNodes('//CITY/Table');
items = oDoc.selectNodes('//address/Table');
for (var item = items.nextNode();item;item = items.nextNode())
{
var city = item.selectSingleNode('//address').nodeTypedValue;
var newOption = document.createElement('OPTION');
newOption.text = city;
newOption.value = city;
drp2.options.add(newOption);
}
}
</script>
============================
webform1.aspx
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
SqlConnection con = new SqlConnection('packet size=4096;user id=sa;data source=SERVER;persist security info=False;initial catalog=pubs');
SqlDataAdapter da = new SqlDataAdapter('select state from authors group by state',con);
DataSet ds = new DataSet('State');
da.Fill(ds);
this.DropDownList1.DataSource = ds.Tables[0];
this.DropDownList1.DataTextField = 'state';
this.DropDownList1.DataValueField = 'state';
this.DropDownList1.DataBind();
this.DropDownList1.Attributes.Add('onchange','load()');
//DropDownList1.
}
}
webform2.aspx
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(this.Request['state']!=null)
{
string state = this.Request['state'].ToString();
SqlConnection con = new SqlConnection('packet size=4096;user id=sa;data source=SERVER;persist security info=False;initial catalog=pubs');
SqlDataAdapter da = new SqlDataAdapter('select address from authors where state = ''+state+''',con);
DataSet ds = new DataSet('address');
da.Fill(ds);
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.IndentChar = ' ';
ds.WriteXml(writer);
writer.Flush();
Response.End();
writer.Close();
}
}