
<%...@ Page Language="C#" MasterPageFile="~/Member/MasterPage.master" AutoEventWireup="true" CodeFile="ProductMana.ASPx.cs" Inherits="Member_ProductMana" Title="ChinaPackNet - Product Manage" %>
<ASP:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
<script type="text/Javascript">...
function XMLPost2(obj)
...{
var requestUrl = "?parentid=" + obj.value;
var reval = "";
var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
XMLHttp.open("POST", requestUrl, false);
XMLHttp.send("");
reval = XMLHttp.responseText;
if(reval != "")
...{
document.getElementById("ctl00_ContentPlaceHolder1_lbCCategory").length=0;
var piArray = reval.split(",");
for(var i=0;i<piArray.length;i++)
var ary1 = piArray[i].toString().split("|");
document.getElementById("ctl00_ContentPlaceHolder1_lbCCategory").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
}
}
else
...{
document.getElementById("ctl00_ContentPlaceHolder1_lbCCategory").length=0;
}
}
</script>
<asp:ListBox ID="lbFCategory" runat="server" Rows="10"></ASP:ListBox>
<asp:ListBox ID="lbCCategory" runat="server" Rows="10"></ASP:ListBox>
</ASP:Content>
其中:lbCCategory的客戶端ID是通過浏覽頁面查看源文件找出來的
可以通過ClIEntScriptManager對象在CS代碼中注冊客戶端代碼獲取控件在客戶端的ID
做浏覽器兼容的話修改JS
var XMLHttp;
if(navigator.userAgent.indexOf("MSIE")>0)
{
xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
}
else
{
xmlHttp = new XMLHttpRequest();
}
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.XML;
using System.Text;
public partial class Member_ProductMana : System.Web.UI.Page
...{
protected override void OnLoadComplete(EventArgs e)
...{
base.OnLoadComplete(e);
if (!this.IsPostBack)
...{
this.BindFCategory();
this.lbFCategory.Attributes.Add("onchange", "XMLPost2(this);");
}
if (ParentID != "")
...{
this.BindCCategory(ParentID);
}
}
private void BindFCategory()
...{
DataSet ds = DataAccess.SQLServerDAL.GetList.GetCategory();
ds.Tables[0].DefaultVIEw.RowFilter = "ParentID = 0 ";
this.lbFCategory.DataSource = ds.Tables[0].DefaultVIEw;
this.lbFCategory.DataTextFIEld = "CategoryName";
this.lbFCategory.DataValueFIEld = "CategoryID";
this.lbFCategory.DataBind();
ds.Dispose();
}
private string ParentID
...{
get
...{
if (ViewState["parentid"] != null && VIEwState["parentid"].ToString() != "")
...{
return VIEwState["parentid"].ToString();
}
else
if (Request["parentid"] != null && Request["parentid"].ToString() != "")
...{
return Request["parentid"];
}
else
...{
return "";
}
}
}
set
...{
VIEwState["parentid"] = value;
}
}
private void BindCCategory(string id)
...{
string mystr = "";
DataSet ds = DataAccess.SQLServerDAL.GetList.GetCategoryList(100, 1, "ParentID = " + ParentID); 
if (ds.Tables[0].Rows.Count != 0)
...{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
...{
mystr += "," + ds.Tables[0].Rows[i]["CategoryID"].ToString() + "|" + ds.Tables[0].Rows[i]["CategoryName"].ToString();
}
mystr = mystr.Substring(1);
}
this.Response.Write(mystr);
this.Response.End();
ds.Dispose();
}
} DataAccess.SQLServerDAL.GetList.GetCategory()方法獲取分類表中的所有數據