.net 二级联动菜单

来源:互联网 发布:同知是什么官 编辑:程序博客网 时间:2024/03/29 20:10
 实现两个dropdownlist的无刷新联动(分三步) 1. 做一个页面,里面有两个dropdownlist,并分别设置其id,其后加入下列脚本:
<script language="javascript" type="text/javascript">
function load(state) 

var drp2 = document.getElementById("ddl2"); 
//for(i = drp2.options.length; i>= 0 ;i--) 
//{
 //drp2.options.remove(i); 
//} 
drp2.length=0; //清除所有的选项
var XmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
XmlHttp.open("POST", "AdminArticleValue.aspx?state="+state, fal**); *mlHttp.setRequestHeader("Content-Type","text/xml"); 
XmlHttp.send(""); 
if (XmlHttp.readyState == 4) {// 收到完整的服务器响应 
if (XmlHttp.status == 200) {//HTTP服务器响应的值OK 
var option =(XmlHttp.responseText).split("@"); 
for(var i=1;i<=option[0];i++) 

var newOption = document.createElement("OPTION"); 
newOption.text = option[2*i-1]; 
newOption.value = option[2*i]; 
drp2.options.add(newOption);
  }
  } 

}
</script>
2. 在后台CS中的load事件中写入如下代码:
if(!this.IsPostBack)

this.ddl1.Attributes.Add("onchange","load(this.options[this.selectedIndex].innerText)"); 
}
3. 在被请求的页面中的后台写入如下代码:
private void Page_Load(object sender, System.EventArgs e)
{
string site=this.Request["state"].ToString();
if(site!=null && site!="")

string parent="";
string result="";
parent=DbHelperSQL.GetSingle("select Site_Value from SiteMenu where Site_Name='"+site+"'").ToString();
using (SqlDataReader dr = DbHelperSQL.ExecuteReader("select Site_Name,Site_Value from SiteMenu where Site_Parent='"+parent+"'"))
{
while(dr.Read())
{ result+=dr["Site_Name"].ToString()+"@"+dr["Site_Value"].ToString()+"@";
}
}              result=Convert.ToString((result.TrimEnd('@').Split('@').Length/2))+"@"+result.TrimEnd('@').ToString();
Response.Write(result);

}