ASP .NET C#生成下拉列表树实现代码
效果图:
代码: 复制代码代码如下:使用系统。数据;使用系统。网络控件;///摘要///根据数据表生成下拉列表树////摘要公共类DropDownListHelp { private string gridline;私有数据表dt;public DropDownListHelp(){////todo :在此处添加构造函数逻辑//} ///摘要///根据数据表生成树形下拉菜单////summary////param name=' datatable '/param////param name=' parentKeyField '上级节点关键字段/param ///param name='parentKey '上级节点值/param ///param name='keyField '本节点关键字段/param ///param name='sortString '排序字符串/param///param name=' DDL ' downlist/param public void createdrpdowntree(DataTable DataTable,string parentKeyField,string parentKey,string keyField,string textField,string sortString,DropDownList DDL){ dt=DataTable;ddl .项目。添加(新的列表项目(""、"");添加子项(父关键字字段、父关键字、关键字字段、文本字段、排序字符串、DDL);} ///摘要///递归生成树节点////summary///param name=' ParentKeyField '上级节点关键字段/param ///param name='parentKey '上级节点值/param ///param name='keyField '本节点关键字段/param ///param name='sortString '排序字符串/param///param name=' DDL '下载列表控件/param /返回/返回private void addChildItems(string parentKeyField,string parentKey,string keyField,string textField,string sortString,DropDownList DDL){ DataView dv=new DataView(dt,parentKeyField '=' ' parentKey ' ' ',sortString,DataViewRowState .当前行);int a=dv .计数;中频(dv).count==0){ return;} for(int I=0;一a;I){ gridline=' ';dv .行筛选器=ParentKeyField '=' ParentKey ' ' ';dv .sort=sortstringgetreline(ParentKeyField,dv[i][parentKeyField]).ToString(),keyField,dv[i][keyField].ToString(),sortString);dv .行筛选器=ParentKeyField '=' ParentKey ' ' ';dv .Sort=sortStringddl .添加新的列表项(网格线(i==a - 1?'' : '') dv[i][textField].ToString(),dv[i][keyField].ToString()));addChildItems(parentKeyField,dv[i][keyField]).ToString()、keyField、textField、sortString、DDL);} dv .dispose();} ///摘要///回溯生成树的连接线////summary///param name=' ParentKeyField '上级节点关键字段/param ///param name='parentKey '上级节点值/param ///param name='keyField '本节点关键字段/param ///param name='nodeKey '本节点值/param ///param name='sortString '排序字符串/param /返回/返回private void getreline(string parentKey字段、string parent key、string keyField、string nodeKey、string sortString) { //选择父层节点数据视图dv=新数据视图(dt,keyField '=' ' parentKey ' ' ',sortString,DataViewRowState .当前行);中频(dv).计数0) { //选择父节点同级节点dv .行筛选器=ParentKeyField '=' dv[0][ParentKeyField].ToString()' ' ' ';dv .sort=sortStringFor(int j=0;dv .计数;j ) { if (dv[j][keyField].ToString()==ParentKey){ if(j==dv .count-1){ gridline=' ' gridline;} else { gridline=''网格线;} } } gettreline(ParentKeyField,dv[0][parentKeyField].ToString(),keyField,dv[0][keyField].ToString(),sortString);} dv .dispose();} } 调用: 复制代码代码如下: DropDownlishelp ddlHelper=new DropDownlishelp();ddlhelper。createdropdowntree(dt,' parentID ',' 1 ',' ID ',' Text ',' Text asc ',dropdownlist 1);
版权声明:ASP .NET C#生成下拉列表树实现代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。