关于联动菜单问题,效果基本上实现了。
数据都是从数据库中读取来的。现在我想在大类菜单上加一个选项
<asp:listitem value=0>请选择大类</option>
我把我的联动菜单代码给大家看看!
<SCRIPT language="JavaScript">
<!--
//以XML求取数据
function XmlPost(obj)
{
var svalue = obj.value;
var webFileUrl = "?tid=" + svalue;
var result = "";
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
xmlHttp.open("POST", webFileUrl, false);
xmlHttp.send("");
result = xmlHttp.responseText;
if(result != "")
{
document.all("DropDownList2").length=0;
var piArray = result.split(",");
for(var i=0;i<piArray.length;i++)
{
var ary1 = piArray[i].toString().split("|");
//alert(ary1[0].toString());
document.all("DropDownList2").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
else
{
alert(result);
}
}
//-->
</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>
*.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
string tid = Request.QueryString["tid"];
if(tid + "a" != "a")
{
down2_bind(tid);
}
if(!Page.IsPostBack)
{
down1_bind();
}
// 在此处放置用户代码以初始化页面
}
private DataTable get_dt(string sql)
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
conn.Open();
SqlCommand myOleDbCommand = new SqlCommand(sql,conn);
SqlDataAdapter da = new SqlDataAdapter(myOleDbCommand);
DataSet ds = new DataSet();
da.Fill(ds);
conn.Close();
return ds.Tables[0];
}
private void down2_bind(string id)
{
string mystr = "";
string sql = "select typeid,typename from tbl_car_picTypes where typelevel=2 and upid = '" + id + "'";
DataTable mytab = get_dt(sql);
if(mytab.Rows.Count != 0)
{
for(int i=0;i<mytab.Rows.Count;i++)
{
mystr += "," + mytab.Rows[i][0].ToString() + "|" + mytab.Rows[i][1].ToString();
}
mystr = mystr.Substring(1);
}
Response.Write(mystr);
Response.End();
}
private void down1_bind()
{
string sql = "select typeid,typename from tbl_car_picTypes where typelevel=1";
DataTable mytab = get_dt(sql);
DropDownList1.DataSource = mytab;
DropDownList1.DataValueField = "typeid";
DropDownList1.DataTextField = "typename";
DropDownList1.DataBind();
DropDownList1.Attributes.Add("onchange","XmlPost(this);");
}
问题点数:5、回复次数:6Top
1 楼kellybs(Java、.Net技术网:httP;//www.javavsnet.com)回复于 2005-08-01 21:33:07 得分 0
typelevel=1 表示读大类数据
typelevel=2 表示读小类数据
Top
2 楼kellybs(Java、.Net技术网:httP;//www.javavsnet.com)回复于 2005-08-02 09:25:03 得分 0
自己顶一下Top
3 楼kellybs(Java、.Net技术网:httP;//www.javavsnet.com)回复于 2005-08-04 10:45:51 得分 0
再顶Top
4 楼qgqchile(qgq)回复于 2005-08-23 23:38:53 得分 0
不错,挺好的,另外给点小建议 var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");只是对MS的浏览器把,不妨加个判断语句 让别的浏览器支持Top
5 楼maoliner(控制面板)回复于 2005-08-24 08:07:30 得分 0
顶Top
6 楼kellybs(Java、.Net技术网:httP;//www.javavsnet.com)回复于 2005-08-24 08:44:30 得分 0
请老大指点一下,如何别的浏览器支持?Top




