龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

ASP.NET实现动态二级下拉框(非js版本)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
此下拉框是使用.net控件的下拉框,后台实现数据库访问,用了ajax控件来实现局部刷新,如不需要可以不用。 其中实现下拉框的选定事件 OnSelectedIndexChanged() 是关键,添加此事件的必须

此下拉框是使用.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;//如果一级下拉框的选定项无子项目,则不显示二级下拉框
        }
    }

 

精彩图集

赞助商链接