我做了一个用户控件Control.ascx,里面有两个dropdownlist,一个ID为ddlSchoolList,一个ID为ddlClassList,然后我把这个control.ascx放到default.aspx页面里(放了两次),一个为SchoolCtl,一个为ClassCtl,我想实现的效果是,当我选中了SchoolCtl中的ddlClassList后,在ClassCtl中的ddlClassList中部显示出SchoolCtl中选中的ddlClassList的项。请问该怎么做啊?我做了几天没实现!小弟在此谢过大家了。
用户控件代码WebUserControl.ascx:<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>学校:<asp:DropDownList ID="ddlSchoolList" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlSchoolList_SelectedIndexChanged">
    </asp:DropDownList>班级:
    <asp:DropDownList ID="ddlClassList" runat="server">
    </asp:DropDownList>WebUserControl.ascx.cspublic partial class WebUserControl : System.Web.UI.UserControl
{
    private static string removeValue = null;
    private string schoolValue = "";
    private string classValue = "";
    private bool postBack;    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindSchoolList();
        }
       
        if (postBack)
            ddlClassList.AutoPostBack = true;    }    public void Page_RreRender(object sender, EventArgs e)
    {
         if (removeValue != null)
        {
            if (ddlClassList.Items.FindByValue(removeValue) != null)
            {
                ddlClassList.Items.FindByValue(removeValue).Enabled = false;
            }
        }
    }    #region 属性    public string SchoolValue
    {
        set { this.schoolValue = ddlSchoolList.SelectedValue.Trim(); }
        get { return ddlSchoolList.SelectedValue.Trim(); }
    }    public string ClassValue
    {
        set { this.classValue = ddlClassList.SelectedValue.Trim(); }
        get { return ddlClassList.SelectedValue.Trim(); }
    }    public string RemoveValue
    {
        set { removeValue = value; }
        get { return ddlClassList.SelectedValue; }
    }    public string PostBack
    {
        set { postBack = Convert.ToBoolean(value); }
    }    #endregion    private void BindSchoolList()
    {
        ArrayList list = new ArrayList();        for (int i = 1; i < 3; i++)
        {
            list.Add("School" + i.ToString());
        }
        ddlSchoolList.Items.Clear();
        ddlSchoolList.Items.Add(new ListItem("==请选择==", "0"));
        for (int i = 0; i < list.Count; i++)
        {
            ddlSchoolList.Items.Add(new ListItem(list[i].ToString(), (i + 1).ToString()));
        }
        ddlClassList.Items.Add(new ListItem("==请选择==", "0"));
    }    private void BindClassList()
    {
        ArrayList list = new ArrayList();
        switch (ddlSchoolList.SelectedValue.Trim())
        {
            case "1":
                for (int i = 1; i < 3; i++)
                {
                    ddlClassList.Items.Add(new ListItem("ClassA" + i.ToString(), (i + 1).ToString()));
                }
                break;
            case "2":
                for (int i = 1; i < 3; i++)
                {
                    ddlClassList.Items.Add(new ListItem("ClassB" + i.ToString(), (i + 1).ToString()));
                }
                break;
        }
    }    protected void ddlSchoolList_SelectedIndexChanged(object sender, EventArgs e)
    {
        BindClassList();
    }
}调用页面:Default.aspx<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <uc1:WebUserControl ID="SchoolCtl" runat="server" />
        <uc1:WebUserControl ID="ClassCtl" RemoveValue="<%#GetRemoveValue() %>" runat="server" />
    </div>
    </form>
</body>
</html>default.aspx.cspublic partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ClassCtl.RemoveValue = SchoolCtl.ClassValue;
    }    public string GetRemoveValue()
    {
        return SchoolCtl.ClassValue;
    }
}