日期:2014-05-20  浏览次数:20621 次

【散分了】在vs.net2003中实现两个DropdownList无刷新联动?
在vs.net2003中实现两个DropdownList无刷新联动?

------解决方案--------------------
a.aspx
------------------------
<script>
function load(state){
var drp2 = document.getElementById( "ddlDepart ");
for (i = drp2.length; i > = 0; i--){
drp2.options.remove(i);
}

var oHttpReq = new ActiveXObject( "MSXML2.XMLHTTP ");
var oDoc = new ActiveXObject( "MSXML2.DOMDocument ");

oHttpReq.open( "POST ", "getdata.aspx?state= "+state, false); //state为一级id
oHttpReq.send( " ");
result = oHttpReq.responseText;
oDoc.loadXML(result);
items1 = oDoc.selectNodes( "//Table/ID ");
items2 = oDoc.selectNodes( "//Table/LONGNAME ");

var itemsLength=items1.length;
  for(i=0;i <itemsLength;i++)
//将小类的类名和编号赋予DropDownList2
  {
   var newOption = document.createElement( "OPTION ");
   newOption.text=items2[i].text;
   newOption.value=items1[i].text;
  
   drp2.options.add(newOption);
  }
}
window.onload = function(){load( '0 ');}

</script>

a.aspx.cs
-------------------------------------------
/// <summary>
/// 下拉列表数据
/// </summary>
private void DDLDataBind()
{
DataSet ds = new DataSet();

ds = ....SelectGm_city();
ddlCity.DataSource = ds;
ddlCity.DataTextField = "longname ";
ddlCity.DataValueField = "id ";
ddlCity.DataBind();
ddlCity.Items.Insert(0, new ListItem( "-请选择- ", "none "));
ddlCity.Attributes.Add( "onchange ", "load(this.options[this.selectedIndex].value) ");
}

getdata.aspx.cs

------------------------------------------------------
写成一个方法,或者直接放 page_load里
string ID = Request.QueryString[ "state "].ToString();

DataSet ds = new DataSet();

try
{
ds=根据一级id获取的2级内容
}
catch
{

}
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.IndentChar = ' ';
writer.WriteStartDocument();
ds.WriteXml(writer);
writer.Flush();
Response.End();
writer.Close();