`
iloveoracle
  • 浏览: 114679 次
  • 性别: 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>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics