asp.net+JS+xml联动
JS程序 :
function load(ID)
{
var SubLenth=document.all.DlsBM.length;
while (SubLenth>=0)
{
document.all.DlsBM.options.remove(SubLenth);
SubLenth--;
}//去处原来的下拉列表中的值
var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var oDoc = new ActiveXObject("MSXML2.DOMDocument");
oHttpReq.open("POST", "../../Common/DoQuery.aspx?ID="+ID+"&Class=BM" , false);//执行动态查询
oHttpReq.send("");
result = oHttpReq.responseText;
oDoc.loadXML(result);
//alert(result);
//以下是对生成的XML解析并添加到下拉列表
items0 = oDoc.selectNodes("//NewDataSet/Table/BM_Name");
items1 = oDoc.selectNodes("//NewDataSet/Table/BM_ID");
//items2 = oDoc.selectNodes("//NewDataSet/Table/DQ_Degree");
var itemsLength=items0.length;
for(i=0;i<itemsLength;i++)
{
var newOption = document.createElement("option");
newOption.text = items0[i].text;
newOption.value = items1[i].text;
//newOption.value1 = items2[i].text;
document.all.DlsBM.options.add(newOption);
}
//alert(document.all.DlsBM.text);
}
后台:
DlsBMPro.Attributes.Add("onchange","load(this.options[this.selectedIndex].value)");
Doquery程序:
if (!IsPostBack)
{
string strID = "";
string strClass = "";
if (Request.QueryString["ID"] == "" || Request.QueryString["ID"] == null || Request.QueryString["Class"] == "" || Request.QueryString["Class"] == null)
{
return;
}
strID = Request.QueryString["ID"];
strClass = Request.QueryString["Class"];
XmlTextWriter writer=new XmlTextWriter(Response.OutputStream,Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.IndentChar = ' ';
switch(strClass)
{
case "DQ":
DQs.GetChildDQ(strID).WriteXml(writer);//根据父地区ID查询所有子地区,并将得到的数据写入指定的XmlTextWriter
break;
case "BM":
BMs.GetBM_Prop(strID).WriteXml(writer);//根据BM_Prop查询所有版面,并将得到的数据写入指定的XmlTextWriter
break;
}
writer.Flush();
//Response.End();
writer.Close();
}