DroDownList控件多级下拉菜单

后台代码:

    /// <summary>
        /// 绑定下拉菜单
        /// </summary>
        private void BindDropList()
        {
            DataTable dt = bacManage.GetAllArticleCategory();
            CreateLevelDropDown(drpCategoryId, dt);
        }

        /// <summary>
        /// 创建分级下拉框
        /// </summary>
        /// <param name="ddlst"></param>
        /// <param name="dt"></param>
        private void CreateLevelDropDown(DropDownList ddlst, DataTable dt)
        {
            System.Collections.ArrayList allItems = new ArrayList();
            DataRow[] rows = dt.Select("[parent]=" + 0);
            foreach (DataRow row in rows)
                CreateLevelDropDownAssistant(dt, ref   allItems, row, string.Empty);

            ListItem[] items = new ListItem[allItems.Count];
            allItems.CopyTo(items);
            ddlst.Items.AddRange(items);
        }

        /// <summary>
        /// 设置下拉列表分级格式
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="items"></param>
        /// <param name="parentRow"></param>
        /// <param name="curHeader"></param>
        private void CreateLevelDropDownAssistant(DataTable dt, ref   ArrayList items, DataRow parentRow, string curHeader)
        {
            ListItem newItem = new ListItem(curHeader + parentRow["name"].ToString(), parentRow["category_id"].ToString());
            items.Add(newItem);
            parentRow.Delete();

            DataRow[] rows = dt.Select("[parent]=‘" + newItem.Value + "‘");
            for (int i = 0; i < rows.Length - 1; i++)
                CreateLevelDropDownAssistant(dt, ref   items, rows[i], curHeader.Replace("┣", "|").Replace("┗", "┣") + "┣");

            if (rows.Length > 0)
                CreateLevelDropDownAssistant(dt, ref   items, rows[rows.Length - 1], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┗");
        }

/// <summary>
        /// 绑定下拉菜单
        /// </summary>
        private void BindDropList()
        {
            DataTable dt = bacManage.GetAllArticleCategory();
            CreateLevelDropDown(drpCategoryId, dt);
        }

/// <summary>
        /// 创建分级下拉框
        /// </summary>
        /// <param name="ddlst"></param>
        /// <param name="dt"></param>
        private void CreateLevelDropDown(DropDownList ddlst, DataTable dt)
        {
            System.Collections.ArrayList allItems = new ArrayList();
            DataRow[] rows = dt.Select("[parent]=" + 0);
            foreach (DataRow row in rows)
                CreateLevelDropDownAssistant(dt, ref   allItems, row, string.Empty);

ListItem[] items = new ListItem[allItems.Count];
            allItems.CopyTo(items);
            ddlst.Items.AddRange(items);
        }

/// <summary>
        /// 设置下拉列表分级格式
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="items"></param>
        /// <param name="parentRow"></param>
        /// <param name="curHeader"></param>
        private void CreateLevelDropDownAssistant(DataTable dt, ref   ArrayList items, DataRow parentRow, string curHeader)
        {
            ListItem newItem = new ListItem(curHeader + parentRow["name"].ToString(), parentRow["category_id"].ToString());
            items.Add(newItem);
            parentRow.Delete();

DataRow[] rows = dt.Select("[parent]=‘" + newItem.Value + "‘");
            for (int i = 0; i < rows.Length - 1; i++)
                CreateLevelDropDownAssistant(dt, ref   items, rows[i], curHeader.Replace("┣", "|").Replace("┗", "┣") + "┣");

if (rows.Length > 0)
                CreateLevelDropDownAssistant(dt, ref   items, rows[rows.Length - 1], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┗");
        }

DroDownList控件多级下拉菜单

时间: 2024-10-09 13:52:11

DroDownList控件多级下拉菜单的相关文章

js控件,下拉菜单

要求输入框点击出现下拉菜单,并实现以下功能: 1.首先点击地点标签页,选择好地点: 2.自动显示相应节点标签页显示节点信息,选择好节点 3.自动显示相应的连接点,选择连接点,连接点被选中并被传送的输入框input控件中 制作了该控件的jquery插件,格式采用bootstrap的. 调用方法: input控件写成 <input class="form-control dropdown-toggle" data-toggle="dropdown" id=&quo

div模拟dropdownlist控件 div下拉菜单

原文发布时间为:2009-10-16 -- 来源于本人的百度文章 [由搬家工具导入] 控件发布:div2dropdownlist(div模拟dropdownlist控件) div3dropdownlist控件参数说明。下载:div2dropdownlist**************************************************************************说明:解决普通dropdownlist控件,无法解析html语言,而显示一些特殊字符形式。如数学

jQuery制作水平多级下拉菜单

本篇体验使用jQuery制作水平的.多级的.下拉菜单. 下拉菜单的html部分如下. <body> <nav class="main-nav"> <ul class="nav-list"> <li><a href="#">主页</a></li> <li><a href="#">产品</a></li>

支持各种控件上/下拉刷新的android-pulltorefresh

android- pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新,如ListView.ViewPager.WevView. ExpandableListView.GridView.(Horizontal) ScrollView.Fragment上下左右拉动刷新.并且他 实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验很好. 特性 直接上拉.下拉刷新,也可以从底层直接回到顶部. 滑动动画通配所有的设备. 支持Android 2.3 版本之

基于jQuery带图标的多级下拉菜单

之前为大家分享了很多导航菜单.今天我们要来分享一款很不错的jQuery左侧带小图标的多级下拉菜单,菜单是垂直的,每一个菜单项带有一个小图标,看起来非常专业.并且菜单支持无限极下拉,所以对各位Web开发者来说非常实用.菜单时基于jQuery的,所以基本可以支持所有的浏览器. 在线预览   源码下载 实现的代码. html代码: <div class="content"> <ul class="vertical-nav dark red"> &l

Bootstrap 3 &amp; 4 的多级下拉菜单示例

Bootstrap 虽好,但对于复杂的界面,还是有N多组件需要自己扩展,并且要往简洁.大气的Bootstrap界面上靠,着实要费一些功夫.下面分享一个Bootstrap 3的多级下拉菜单,无需第三方Js脚本,复制后直接可用. Bootstrap 3 的多级下拉菜单示例 <!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title&

Qt qml中listview 列表视图控件(下拉刷新、上拉分页、滚动轴)

Qt qml中listview 列表视图控件(下拉刷新.上拉分页.滚动轴) 来源 https://www.cnblogs.com/surfsky/p/4352898.html 设置ListView涉及到将contentsY,即视图的可见部分的顶部,设置y为委托的值.另一个更改是interactive将视图设置为false.这样可以防止视图移动.用户不能再滚动列表或更改当前Item. contentY为列表上拉后列表左上角点距显示框左上解点的高度listView1.height为可显示部分的高度,

js控制的多级下拉菜单

最近身体不适,所以没能如期的更新,抱歉.这里直接把代码贴上,如果有不明白的地方,留言就行. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &

MFC的组合框(ComboBox)控件切换下拉样式

由于课题的需求需要做MFC串口程序,看了百度下载的串口助手的界面风格,发现这个设计很好 波特率的组合框只给出了5个可选数值,然后第6个选项是Custom,即手动输入. 实际上DCB结构的BaudRate可选数值太多了,做成下拉框会很长很长,这种做法就是选用最常见的几个选项,不需要用户手动输入,也不需要在很长的列表中去选择. 从VS的属性框中可以看到,组合框控件有3种样式,也就是实现的功能是点击Custom选项时从Drop List切换到Dropdown. 从MSDN可以看到两者对应的宏分别为CB