droopdownlist 二级联动,第二个无法显示数据
参看了网上的方法,可自己动手还是不对,郁闷了,特此求教。第二个始终空白,没法显示数据。
数据库:2张表,根据选择的CS_Name得到CS_ID,然后将SPM_Add绑到第二个dropdownlist。
CUS表
CS_ID,CS_Name
SPM表
CS_ID,SPM_Add
代码
<script>
function load(CS_ID)
{
var drp2 = document.getElementById("DropDownList2");
var len=drp2.options.length;
while(len>0)
{
drp2.options.remove(0);
len=drp2.options.length;
}
var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP"); //发送请求
var oDoc = new ActiveXObject("MSXML2.DOMDocument"); //响应结果
if(CS_ID==null)
{
var CS_ID=document.getElementById("DropDownList1").value;
}
oHttpReq.open("post","webform6.aspx?csid="+CS_ID, false);
oHttpReq.send("");
result = oHttpReq.responseText;
oDoc.loadXML(result);
items = oDoc.selectNodes("//SPM_Add/SPM"); ////这里items!=null,我作了个alert检查了一下。
////////////好像就是从下面的for开始不跑了。。。。
for (var item = items.nextNode();item;item = items.nextNode())
{
var Add = item.selectSingleNode("//SPM_Add").nodeTypedValue;
var id = item.selectSingleNode("//CS_ID").nodeTypedValue;
var newOption = document.createElement("OPTION");
newOption.text = Add;
newOption.value = id;
drp2.options.add(newOption);
}
</script>
后台://///这个应该OK的,第一个dropdownlist没问题。
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
SqlConnection con = new SqlConnection("server=localhost;database=SOms;uid=sa;pwd=sa;");
SqlDataAdapter da = new SqlDataAdapter("select CS_ID,CS_Name from CUS", con);
DataSet ds = new DataSet("CUS");
da.Fill(ds);
this.DropDownList1.DataSource = ds;
this.DropDownList1.DataTextField = "CS_Name";
this.DropDownList1.DataValueField = "CS_ID";
this.DropDownList1.DataBind();
this.DropDownList1.Attributes.Add("onchange", "load(this.options[this.selectedIndex].value)");
}
}