DropDownList实现无限分级
数据库:SqlServer2000
表:tree
表结构:
测试数据:
算法:使用递归实现
======================================
asp.net代码:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace AspNetTest.Common
{
/// <summary>
/// tree 的摘要说明。
/// </summary>
public class tree : System.Web.UI.Page
{
private DataTable dtPowerTree = new DataTable();
private DataTable dt=new DataTable();
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.TextBox TextBox1;
const string tablename = "tree";
protected System.Web.UI.WebControls.DropDownList DropDownList2;
private string strText;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
FillTreeDataTable();
blTreeDataTable(0);
dtPowerTree.Clear();
}
// 在此处放置用户代码以初始化页面
}
private void FillTreeDataTable()
{
string ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection conn = new SqlConnection(ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("select Id,PowerName,Layer,ParentId from " + tablename, conn);
da.Fill(dtPowerTree);
}
private void blTreeDataTable(int _ParentId)
{
string filter = "ParentId=" + _ParentId;
string sort = "Id ASC";
DataRow[] drs = dtPowerTree.Select(filter, sort);
for(int i=0; i<drs.Length; i++)
{
if(Convert.ToInt32(drs[i][3]) == _ParentId)
{
int Id = Convert.ToInt32(drs[i][0]);
string PowerName = drs[i][1].ToString();
int Layer = Convert.ToInt32(drs[i][2]);
for(int n=1;n<=Layer; n++)
{
strText += HttpUtility.HtmlDecode(" ");
}
if(_ParentId!=0)
{
DropDownList1.Items.Add(new ListItem(strText+"┣"+PowerName,Id.ToString()));
strText="";
}
else
{
DropDownList1.Items.Add(new ListItem(PowerName,Id.ToString()));
}
blTreeDataTable(Id);
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
转载于:https://www.cnblogs.com/challenge/archive/2006/07/21/456303.html
DropDownList实现无限分级相关推荐
- html左侧分级导航,jquery实现无限分级横向导航菜单的方法
本文实例讲述了jquery实现无限分级横向导航菜单的方法.分享给大家供大家参考.具体实现方法如下: 1. jquery插件版本代码如下: (function($){ $.fn.extend({ dro ...
- 使用jstree创建无限分级的树(ajax动态创建子节点)
首先来看一下效果 页面加载之初 节点全部展开后 首先数据库的表结构如下 其中Id为主键,PId为关联到自身的外键 两个字段均为GUID形式 层级关系主要靠这两个字段维护 其次需要有一个类型 publi ...
- php简单网站源码包含数组_PHP无限分级阶梯递归数组排列 以及多层嵌套数组在网页中的解析源码...
数组递归 PHP无限分级 将数组递归转化成阶梯型数组 数组中包含数组 使用更方便 查看也很方便,网上找的都不是很好,自己写的才是王道 简单的递归 没有什么特别之处 只是自己写的容易理解一点而已! 代 ...
- 简单的无限分级类 category, menus, jquery tree view
1. 简单的无限分级类 category, menus <?phpmysql_connect("localhost","root","root& ...
- 无限分级和tree结构数据增删改【提供Demo下载】
无限分级 很多时候我们不确定等级关系的层级,这个时候就需要用到无限分级了. 说到无限分级,又要扯到递归调用了.(据说频繁递归是很耗性能的),在此我们需要先设计好表机构,用来存储无限分级的数据.当然,以 ...
- PHP无限极分类生成树方法,无限分级
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function ...
- php无限分级快速,PHPTree——php快速生成无限级分类_php技巧
在开发中经常需要用到树形数据,比如无限多级分类,就是典型的树形结构.这里面的算法,用到了递归思想,为了简化开发过程,我编写了一个工具来提升开发效率,需要的朋友可以参考下 它就是PHPTree. git ...
- oracle 查询无限开始,Oracle无限分级下查询指定分类下所有子分类Sql
表结构: create table "KDCategory" ( "CategoryID" INTEGER not null, "CategoryNa ...
- 开发日记-20190426 关键词 无限分级界面
最近公司需要制作这样一个界面,说实话,如果说单纯每次点击界面就全部加载一次数据并刷新界面也可以,也很省脑力,但是说真的,缺乏挑战性以及秒杀问题的快感,所以这里我并不打算这样实现,嘛,还是打算花一点功夫 ...
最新文章
- 一次性动态绑定多个droplistdown
- Linux命令应用大词典-第25章 备份与还原
- zabbix 自定义监控项 获取nginx监控状态
- jenkins添加linux作为slave
- 5799元!OPPO Find X5 Pro天玑版即将开卖:性能比肩骁龙8
- java雪崩_【并发编程】java 如何解决redis缓存穿透、缓存雪崩(高性能示例代码)...
- 第一篇:webservice初探
- 实时 摔倒识别 /运动分析/打架等异常行为识别/控制手势识别等所有行为识别全家桶 原理 + 代码 + 数据+ 模型 开源!
- FLEX地图应用教程集
- 紫外分光光度计与紫外可见分光光度计的区别是什么?
- DFD图练习(图书管理系统)
- 纵行科技联合Kinéis等欧洲企业,开发ZETA星地融合低功耗物联网芯片
- poj2187 旋转卡(qia)壳(ke)
- PROFINET I/O设备初步开发成功发帖庆贺一下
- dvb-c usb android,安卓智能DVB-C高清数字机顶盒
- Mocha Pro 平面跟踪插件
- 【程序报错】Spring容器启动时报异常:Can not set field to com.sun.proxy.$Proxy
- 监听系统开屏、锁屏、解锁、按下home键、按下多任务键【未完待续】
- 企业OA有哪些好处?所有企业都要用OA吗?
- Caused by: org.postgresql.util.PSQLException: ERROR: column xxx.xxx does not exist
热门文章
- 伦敦帝国学院提出局部特征提取新模式D2D:先描述后检测
- 成为百万程序员第一步:从安装Python开始
- 程序员都喜欢抄袭“代码”,而且还拿着高薪?难道就这么无法无天
- centos 6.4/6.5下源码编译安装mysql_CentOS 6.4/6.5下源码编译安装mysql
- ACM Fellow发文抨击【同行评审】作弊轻松中顶会
- Google 发布图片配对基准及挑战:从系列图像重建三维物体和建筑物
- Github | 人脸识别手册 (分类论文集)
- 何恺明组又出神作!最新论文提出全景分割新方法
- 《Python编程从入门到实践》记录之类的使用
- 对于原始轨迹的噪声过滤方法和曲率计算方法