html页面部分,保存为 WebForm2.aspx文件
<script language="vbscript">
Function bytes2BSTR(vIn)
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
</script>
<script>
function load(state){
var drp2 = document.getElementById("DropDownList2");
var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var oDoc = new ActiveXObject("MSXML2.DOMDocument");
oHttpReq.open("POST", "WebForm2.aspx", false);
oHttpReq.setRequestHeader("Content-Type","text/xml");
oHttpReq.send("<root>"+state+"</root>");
result = bytes2BSTR(oHttpReq.responseBody);
oDoc.loadXML(result);
for(i=0;i<oDoc.documentElement.childNodes.length;++i)
{
var text = oDoc.documentElement.childNodes[i].childNodes[1].text;
var value = oDoc.documentElement.childNodes[i].childNodes[0].text;
var option = document.createElement("OPTION");
option.text = text;
option.value = value;
drp2.options[i]=option;
}
}
</script>
<asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
<asp:DropDownList id="DropDownList2" runat="server"></asp:DropDownList>
WebForm2.aspx文件的后台代码实现:
if (Request.ContentType.ToLower() == "text/xml")
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Request.InputStream);
this.TextBox1.Text= xmldoc.InnerText;
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();
}
if(!this.IsPostBack)
{
ds.WriteXml(Server.MapPath("test.xml"));
this.DropDownList1.Items.Add(new ListItem("123","123"));
this.DropDownList1.Items.Add(new ListItem("测试","test"));
this.DropDownList1.Attributes.Add("onchange","load(this.options[this.selectedIndex].innerText)");
}