`
iloveoracle
  • 浏览: 119430 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

通过递归方法 将datatable中的树状数据信息 按树状格式显示在dropdownlist中

    博客分类:
  • java
阅读更多
    <p>datatable中的数据:<br>typeid , typename , parenttypeid<br>1 类别a 0<br>2 类别b 0<br>3 子类别b1 2<br>4 子类别a1 1<br>5 孙类别a11 4</p><p>dropdownlist的显示效果:<br>类别a<br>|--子类别a1<br>|----孙类别a11<br>类别b<br>|--子类别b1</p><div class="cnblogs_code"><img id="code_closed_image_170503" height="16" src="http://www.cnblogs.com/images/outliningindicators/contractedblock.gif" width="11" align="top"><img id="code_open_image_170503" style="display: none;" height="16" src="http://www.cnblogs.com/images/outliningindicators/expandedblockstart.gif" width="11" align="top"><span class="cnblogs_code_collapse" id="code_closed_text_170503">code</span><span id="code_open_text_170503" style="display: none;"><br>&lt;!--&lt;br /&gt;&lt;br /&gt;code highlighting produced by actipro codehighlighter (freeware)&lt;br /&gt;http://www.codehighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;<span style="color: #000000;"></span><span style="color: #0000ff;">#region</span><span style="color: #000000;">绑定</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">private</span><span style="color: #000000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">fn_bind_dropdownlist()<br>{<br>datasetds;<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">数据库操作取出相应的ds<br></span><span style="color: #008000;">//</span><span style="color: #008000;">ds=bll_type.selectalltypeforchoose();</span><span style="color: #008000;"><br></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ddl_type.items.clear();<br></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(ds</span><span style="color: #000000;">!=</span><span style="color: #000000;"></span><span style="color: #0000ff;">null</span><span style="color: #000000;"></span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">ds.tables.count</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"></span><span style="color: #800080;">0</span><span style="color: #000000;"></span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">ds.tables[</span><span style="color: #800080;">0</span><span style="color: #000000;">].rows.count</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"></span><span style="color: #800080;">0</span><span style="color: #000000;">)<br>{<br>datatabledtpara</span><span style="color: #000000;">=</span><span style="color: #000000;">ds.tables[</span><span style="color: #800080;">0</span><span style="color: #000000;">];<br>datatabledttree</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #0000ff;">new</span><span style="color: #000000;">datatable();<br>dttree</span><span style="color: #000000;">=</span><span style="color: #000000;">dtpara.clone();<br>fn_changetotree(</span><span style="color: #0000ff;">ref</span><span style="color: #000000;">dttree,dtpara,</span><span style="color: #800080;">0</span><span style="color: #000000;">,</span><span style="color: #800000;">"</span><span style="color: #800000;">0</span><span style="color: #800000;">"</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">从顶级开始递归遍历</span><span style="color: #008000;"><br></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ddl_type.datasource</span><span style="color: #000000;">=</span><span style="color: #000000;">dttree;<br></span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ddl_type.datatextfield</span><span style="color: #000000;">=</span><span style="color: #000000;">dttree.columns[</span><span style="color: #800080;">1</span><span style="color: #000000;">].tostring();<br></span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ddl_type.datavaluefield</span><span style="color: #000000;">=</span><span style="color: #000000;">dttree.columns[</span><span style="color: #800080;">0</span><span style="color: #000000;">].tostring();<br></span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ddl_type.databind();<br>}<br></span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ddl_type.items.insert(</span><span style="color: #800080;">0</span><span style="color: #000000;">,</span><span style="color: #0000ff;">new</span><span style="color: #000000;">listitem(</span><span style="color: #800000;">""</span><span style="color: #000000;">,</span><span style="color: #800000;">"</span><span style="color: #800000;">0</span><span style="color: #800000;">"</span><span style="color: #000000;">));<br>}<br></span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">#region</span><span style="color: #000000;">将类别datatable信息整理成树状显示</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">private</span><span style="color: #000000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">fn_changetotree(</span><span style="color: #0000ff;">ref</span><span style="color: #000000;">datatabledttree,datatabledtpara,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">intlevel,</span><span style="color: #0000ff;">string</span><span style="color: #000000;">strparenttypeid)<br>{<br>intlevel</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">string</span><span style="color: #000000;">strleftpre</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #800000;">""</span><span style="color: #000000;">;</span><span style="color: #008000;">//</span><span style="color: #008000;">处理每个级别的前缀内容显示</span><span style="color: #008000;"><br></span><span style="color: #000000;"></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(intlevel</span><span style="color: #000000;">&gt;</span><span style="color: #800080;">1</span><span style="color: #000000;">)<br>{<br>strleftpre</span><span style="color: #000000;">=</span><span style="color: #800000;">"</span><span style="color: #800000;">|</span><span style="color: #800000;">"</span><span style="color: #000000;"></span><span style="color: #000000;">+</span><span style="color: #000000;">strleftpre.padleft(intlevel</span><span style="color: #000000;">*</span><span style="color: #800080;">2</span><span style="color: #000000;">,</span><span style="color: #800000;">'</span><span style="color: #800000;">-</span><span style="color: #800000;">'</span><span style="color: #000000;">);<br>}<br><br>datatabledt1</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #0000ff;">new</span><span style="color: #000000;">datatable();</span><span style="color: #008000;">//</span><span style="color: #008000;">当前类别</span><span style="color: #008000;"><br></span><span style="color: #000000;">dt1</span><span style="color: #000000;">=</span><span style="color: #000000;">dtpara.clone();<br>datatabledt2</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #0000ff;">new</span><span style="color: #000000;">datatable();</span><span style="color: #008000;">//</span><span style="color: #008000;">下一级</span><span style="color: #008000;"><br></span><span style="color: #000000;">dt2</span><span style="color: #000000;">=</span><span style="color: #000000;">dtpara.clone();<br><br></span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">i</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #800080;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">dtpara.rows.count;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>{<br>datarowdr</span><span style="color: #000000;">=</span><span style="color: #000000;">dtpara.rows[i];<br></span><span style="color: #0000ff;">string</span><span style="color: #000000;">strrowparenttypeid</span><span style="color: #000000;">=</span><span style="color: #000000;">dr[</span><span style="color: #800000;">"</span><span style="color: #800000;">parenttypeid</span><span style="color: #800000;">"</span><span style="color: #000000;">].tostring();<br></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(strrowparenttypeid</span><span style="color: #000000;">==</span><span style="color: #000000;">strparenttypeid)<br>{<br>dt1.rows.add(dr.itemarray);<br>}<br></span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>{<br>dt2.rows.add(dr.itemarray);<br>}<br>}<br><br></span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">j</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #800080;">0</span><span style="color: #000000;">;j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">dt1.rows.count;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>{<br>datarowdr</span><span style="color: #000000;">=</span><span style="color: #000000;">dt1.rows[j];<br><br>dr[</span><span style="color: #800000;">"</span><span style="color: #800000;">typename</span><span style="color: #800000;">"</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">strleftpre</span><span style="color: #000000;">+</span><span style="color: #000000;">dr[</span><span style="color: #800000;">"</span><span style="color: #800000;">typename</span><span style="color: #800000;">"</span><span style="color: #000000;">].tostring();<br>dttree.rows.add(dr.itemarray);<br></span><span style="color: #0000ff;">string</span><span style="color: #000000;">strrowparenttypeid</span><span style="color: #000000;">=</span><span style="color: #000000;">dr[</span><span style="color: #800000;">"</span><span style="color: #800000;">typeid</span><span style="color: #800000;">"</span><span style="color: #000000;">].tostring();<br>fn_changetotree(</span><span style="color: #0000ff;">ref</span><span style="color: #000000;">dttree,dt2,intlevel,strrowparenttypeid);</span><span style="color: #008000;">//</span><span style="color: #008000;">递归</span><span style="color: #008000;"><br></span><span style="color: #000000;">}<br>}<br></span><span style="color: #0000ff;">#endregion</span></span>
分享到:
评论

相关推荐

    .net DropDownList 树型显示

    - **功能**:这是一个递归方法,用于递归地将子节点绑定到DropdownList中。 - **参数说明**: - `Pading`:当前层级的前缀空格,用于显示层级关系。 - `DirId`:当前节点的ID。 - `dt`:包含数据的DataTable对象...

    vs2005里面DropDownList用树的形式显示数据!

    在Visual Studio 2005中,利用ASP.NET Web Forms技术,可以实现将DropDownList控件以树形结构展示数据的功能。此方法适用于需要展示层级关系数据的场景,如产品分类、组织架构等。下面将详细解析如何在VS2005中实现...

    树形下拉框.net

    根据给定的信息,“树形下拉框.NET”主要涉及如何在.NET框架中通过树形下拉框(Tree Dropdown)来展示组织结构中的部门或岗位层级关系。下面将详细阐述这一技术实现过程及其背后的关键概念。 ### 一、树形下拉框的...

    树形形式填充drowList

    drowList控件通常指的是ASP.NET中的`DropDownList`控件,它被广泛用于下拉列表的创建,但在某些情况下,开发者希望将这个控件用作一个树形菜单或层级结构的展示工具。这不仅需要对控件进行定制化处理,还需要深入...

    asp.net实现递归方法取出菜单并显示在DropDownList中(分栏形式)

    在***中实现递归方法以从数据库中提取菜单项,并将它们以分栏的形式显示在DropDownList控件中,需要了解多个知识点,包括递归算法、数据库操作以及DropDownList控件的使用方法。下面将详细介绍这些知识点。 首先,...

    asp.net实现DropDownList,TreeView,ListBox的无限极分类目录树

    `CreateLevelDropDown`方法是实现此功能的核心,它接收一个DropDownList控件对象,以及包含分类数据的DataTable,然后通过递归的方式将层级关系添加到控件中。这个方法首先找到所有顶级分类(即parentid为0的行),...

    ASP.NET TreeView树型菜单操作实例(代码调试通过).doc

    - **DropDownListBind()** 方法用于递归地填充`DropDownList`,基于父节点ID,获取相关数据集,并将其转换为`DropDownList`项。 - **treeShow()** 方法用于递归地显示子节点。它接收父节点ID和父节点对象作为参数,...

    C# treeview控件使用

    该方法通过递归的方式将所有数据加载到 `TreeView` 控件中。 #### 3. 功能扩展 除了基本的数据展示外,我们还可以实现对树形结构的操作,如添加、编辑、删除节点等功能。这些功能可以通过按钮触发事件来实现。下面...

    WinForms疑难解答.doc

    可以通过添加`TreeNode`对象到`Nodes`集合来构建树形结构。 **21. 使用皮肤美化WinForms** 可以使用第三方库如DevExpress、Telerik等来为WinForms应用添加皮肤效果,也可以自定义样式来美化界面。 #### 二、程序...

    C#编程经验技巧宝典

    72 &lt;br&gt;0102 将字符串首字母转换大写 72 &lt;br&gt;0103 如何进行字节数组和字符串的相互转换 72 &lt;br&gt;0104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 73 &lt;br&gt;4.2 获取字符串信息 73 ...

    ASP.NET C#生成下拉列表树实现代码

    3. **构建树形结构**:在`addChildItems`方法中,使用`DataView`对数据进行筛选和排序,然后通过循环遍历每一行数据,生成表示层级关系的前缀(gridline),这通常是通过递归调用来实现的。前缀由一系列的"├"、"│...

Global site tag (gtag.js) - Google Analytics