我做了一个用户控件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;
}
}
用户控件代码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;
}
}
解决方案 »
- 32位操作系统能正常生成EXCEL,64位操作不支持,怎么调整这段代码?
- |zyciis| 如何通过反般Reflector一个List<UserInfo>对像
- 求一个简易单位固定资产管理软件的源码
- GridView数据源的参数如何确定
- 关于ASP.NET中的多线程问题?
- url重写的问题,急急急急急急急急急急
- 为什么会发生这个奇怪的错误?
- 如何实现登陆界面的用户名文本框,密码文本框与后台相联并且实现验证
- 客户端对话框如何向服务器端传值,服务器端如何接收????????
- 在ASP.NET如何实时生成黑白的图像(为了使长度最小)? 请高手指点
- .NET程序包错,很奇怪得抱错,请各位高手帮忙看看
- 在VS2005上演练MSDN里的用户登录那一节,运行后输入用户名和密码提交后报错,为什么?
描述:
中国行政区域二级联系菜单,根据上级行政区加载下级行政区列表
XML数据驱动,可自定义添加、删除,简易更新
支持回发恢复状态,已正确设定行政区可自动选定和加载各级行政区数据修改一下XML可以实现您的功能.附带源码,可供参考.