ASP.NET实现动态二级下拉框(非js版本)
此下拉框是使用.net控件的下拉框,后台实现数据库访问,用了ajax控件来实现局部刷新,如不需要可以不用。
其中实现下拉框的选定事件OnSelectedIndexChanged()是关键,添加此事件的必须将AutoPostBack设为true。
页面文件.aspx
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlBranch_Root" runat="server" OnSelectedIndexChanged="ddlBranch_Root_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
<asp:DropDownList ID="ddlBranch_Leaf" runat="server" Visible="false"></asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
后台文件.cs
protected void ddlBranch_Root_SelectedIndexChanged(object sender, EventArgs e)
{ //一级下拉框的选定值
int RootCPID = int.Parse(ddlBranch_Root.SelectedValue);
if(RootCPID != 999)
{//如果选定值不等于999,这里设定“请选择”此Item项值是999
IList<CPBranch> LeafBranch = CPBranchBLL.GetByParentID(RootCPID);//读数据库,取出二级下拉框的项
if (LeafBranch.Count > 0)
{ //如果一级下拉框的选定项有子项目,则显示二级下拉框
ddlBranch_Leaf.Visible = true;
ListItemCollection LeafBranchList = new ListItemCollection();
for (int i = 0; i < LeafBranch.Count; i++)
{
ListItem temp = new ListItem();
temp.Value = LeafBranch[i].ID.ToString();
temp.Text = LeafBranch[i].Name;
LeafBranchList.Add(temp);
}
ddlBranch_Leaf.DataSource = LeafBranchList;
ddlBranch_Leaf.DataValueField = "value";
ddlBranch_Leaf.DataTextField = "text";
ddlBranch_Leaf.DataBind();//绑定数据源
}
else ddlBranch_Leaf.Visible = false;//如果一级下拉框的选定项无子项目,则不显示二级下拉框
}
}
- 上一篇:DataTable缓存数据操作
- 下一篇:Asp.net使用IO类操作目录及文件实例