我在一个Page的HTML页中有以下代码:
<%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="DropdownList.WebForm2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm2</title>
</HEAD>
<BODY>
<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">
function load(state){
   var drp2 = document.getElementById("DropDownList2");
   drp2.length = 0;
   var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
   var oDoc = new ActiveXObject("MSXML2.DOMDocument");
   oHttpReq.open("POST", "WebFowm6.aspx?state="+state, false);
   oHttpReq.send("");
   result = oHttpReq.responseText;
   oDoc.loadXML(result);
   items = oDoc.selectNodes("//city/Table");
   for (var item = items.nextNode(); item; item = items.nextNode()){
   var Name = item.nodeTypedValue;
   var newOption = document.createElement("OPTION");
   newOption.text = Name;
   newOption.value = Name;
   drp2.options.add(newOption);
   }
   } </script>
<form id="Form1" method="post" runat="server">
<asp:dropdownlist id="DropDownList1" runat=server ></asp:dropdownlist><asp:dropdownlist id="DropDownList2" runat="server"></asp:dropdownlist></form>
</BODY>
</HTML>
在后台代码中有以下内容:
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
   SqlConnection con = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=;");
   SqlDataAdapter da = new SqlDataAdapter("select state from authors group by state",con);
   DataSet ds = new DataSet();
da.Fill(ds);
DropDownList1.DataSource=ds;
   DropDownList1.DataTextField = "State";
   DropDownList1.DataValueField = "State";
   DropDownList1.DataBind();
   DropDownList1.Attributes.Add("onchange","load('this.options[this.selectedIndex].innerText')");
  }
}
请指教为什么实现不了.

解决方案 »

  1.   

    参考:
    http://dev.csdn.net/article/45/45153.shtm
      

  2.   

    感觉楼主把html和c#混用了,attribute只是在生成的代码里多了一个属性而已,属于客户端。
    'this.options[this.selectedIndex].innerText'的写法好像是服务端的吧
      

  3.   

    load('this.options[this.selectedIndex].innerText')实际上是js脚本,在客户端执行this.selectedIndex在js中获不到,要实现你的功能,用服务器端的DropDownList1_SelectedIndexChanged事件