我搜了帖子,也照着做了,但是我现在的问题是第二个下拉里是一片空白,,两天始终解决不了,望高人指点~~~~代码如下
script:
<script>
function load(parentid)
{
var drp2 = document.getElementById("ddl2");
for(var i = 0;i<=drp2.options.length -1;i++)
{
drp2.remove(i);
}
var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var oDoc = new ActiveXObject("MSXML2.DOMDocument");
oHttpReq.open("POST", "DropChild.aspx?parentid="+parentid, false);
oHttpReq.send("");
result = oHttpReq.responseText;
oDoc.loadXML(result);
items = oDoc.selectNodes("//NewDataSet/Board");
for (var item = items.nextNode(); item; item = items.nextNode())
{
var cid = item.selectSingleNode("boardid").nodeTypedValue;
var cname = item.selectSingleNode("BoardType").nodeTypedValue;
//document.getElementById('dropdownlist').value
var newOption = document.createElement("OPTION");
newOption.text = cname;
newOption.value = cid;
drp2.options.add(newOption);
}
}
</script>search.aspx.cs if(!this.IsPostBack)
{
sqlcn.ConnectionString=ConfigurationSettings.AppSettings["ConnectionString"].ToString();
sqlcn.Open();
string sqlstr="select BoardType, boardid from Dv_Board where Depth=0";
// SqlCommand sqlcmd=new SqlCommand(sqlstr,sqlcn);
SqlDataAdapter sqlad=new SqlDataAdapter(sqlstr,sqlcn);
DataSet ds=new DataSet();
sqlad.Fill(ds,"board");
ddl1.DataSource=ds.Tables["board"].DefaultView ;
ddl1.DataTextField="BoardType";
ddl1.DataValueField="boardid";
ddl1.DataBind();
// ddl1.Items.Add(new ListItem("选择版面",""));
// ddl1.Items[ddl1.Items.Count-1].Selected =true;
// this.ddl1.Attributes.Add("onchange","load(this.options[this.selectedIndex].value)");
sqlcn.Close();
}DropChild.aspx.csif(this.Request["parentid"]!=null)
{
string parentid = this.Request["parentid"].ToString();
SqlConnection sqlcn=new SqlConnection();
sqlcn.ConnectionString=ConfigurationSettings.AppSettings["ConnectionString"].ToString();
sqlcn.Open();
SqlDataAdapter da = new SqlDataAdapter("select BoardType,boardid from Dv_Board where parentid = '"+parentid+"'",sqlcn);
DataSet ds = new DataSet("Board");
da.Fill(ds);
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);
writer.Formatting = Formatting.Indented;
writer.Indentation = 2;
writer.IndentChar = ' ';
ds.WriteXml(writer);
writer.Flush();
Response.End();
writer.Close();
}
script:
<script>
function load(parentid)
{
var drp2 = document.getElementById("ddl2");
for(var i = 0;i<=drp2.options.length -1;i++)
{
drp2.remove(i);
}
var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var oDoc = new ActiveXObject("MSXML2.DOMDocument");
oHttpReq.open("POST", "DropChild.aspx?parentid="+parentid, false);
oHttpReq.send("");
result = oHttpReq.responseText;
oDoc.loadXML(result);
items = oDoc.selectNodes("//NewDataSet/Board");
for (var item = items.nextNode(); item; item = items.nextNode())
{
var cid = item.selectSingleNode("boardid").nodeTypedValue;
var cname = item.selectSingleNode("BoardType").nodeTypedValue;
//document.getElementById('dropdownlist').value
var newOption = document.createElement("OPTION");
newOption.text = cname;
newOption.value = cid;
drp2.options.add(newOption);
}
}
</script>search.aspx.cs if(!this.IsPostBack)
{
sqlcn.ConnectionString=ConfigurationSettings.AppSettings["ConnectionString"].ToString();
sqlcn.Open();
string sqlstr="select BoardType, boardid from Dv_Board where Depth=0";
// SqlCommand sqlcmd=new SqlCommand(sqlstr,sqlcn);
SqlDataAdapter sqlad=new SqlDataAdapter(sqlstr,sqlcn);
DataSet ds=new DataSet();
sqlad.Fill(ds,"board");
ddl1.DataSource=ds.Tables["board"].DefaultView ;
ddl1.DataTextField="BoardType";
ddl1.DataValueField="boardid";
ddl1.DataBind();
// ddl1.Items.Add(new ListItem("选择版面",""));
// ddl1.Items[ddl1.Items.Count-1].Selected =true;
// this.ddl1.Attributes.Add("onchange","load(this.options[this.selectedIndex].value)");
sqlcn.Close();
}DropChild.aspx.csif(this.Request["parentid"]!=null)
{
string parentid = this.Request["parentid"].ToString();
SqlConnection sqlcn=new SqlConnection();
sqlcn.ConnectionString=ConfigurationSettings.AppSettings["ConnectionString"].ToString();
sqlcn.Open();
SqlDataAdapter da = new SqlDataAdapter("select BoardType,boardid from Dv_Board where parentid = '"+parentid+"'",sqlcn);
DataSet ds = new DataSet("Board");
da.Fill(ds);
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding);
writer.Formatting = Formatting.Indented;
writer.Indentation = 2;
writer.IndentChar = ' ';
ds.WriteXml(writer);
writer.Flush();
Response.End();
writer.Close();
}
string strConn = "server=(local);uid=sa;password=;database=article";
if (this.Request["TypeId"] != null)
{
string TypeId = this.Request["TypeId"].ToString();
SqlConnection Conn = new SqlConnection(strConn);
Conn.Open();
string strSql = "select classid,classname from Class_info where TypeID=" + TypeId;
DataSet ds = new DataSet();
SqlDataAdapter Adp = new SqlDataAdapter(strSql, Conn);
Adp.Fill(ds, "Class");
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream,System.Text.Encoding.UTF8);//这句是你要的...我也花了很多时间在这里
writer.Formatting = Formatting.Indented;
writer.Indentation = 4;
writer.IndentChar = ' ';
ds.WriteXml(writer);
writer.Flush();
Response.End();
writer.Close();
}