不用第归算法快速显示树,对于Oracle数据库(2)
来源:互联网 发布:网络舆论的重要性 编辑:程序博客网 时间:2024/05/16 05:11
namespace BQ_TreeView
{/// <summary>
/// BQ_TreeView 的摘要说明
/// </summary>
public class BQ_TreeView : System.Windows.Forms.TreeView
{
private System.ComponentModel.Container components = null;
private DataTable m_tb=null;
private string m_RootMatID;
BQ_TreeNode RootNode=null;
ArrayList alNode=new ArrayList ();
public BQ_TreeView()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
/// <summary>
///定义数据源
/// </summary>
public DataTable TreeDataSource
{
set
{
m_tb=value;
}
}
/// <summary>
///清空所有树控件中的信息
/// </summary>
private void clear()
{
if(RootNode!=null)
{
RootNode.Nodes .Clear ();
if(RootNode!=null)
{
try
{
RootNode.Remove ();
}
catch
{}
}
}
if(alNode!=null)
if(alNode.Count >0)
alNode.Clear ();
}
/// <summary>
/// 构造树控件
/// </summary>
public void MakeTree()
{
clear();//清除树节点中的资源
Cursor.Current =Cursors.WaitCursor ;
// 首先要给根节点付值,因为取出来的结构中没有根节点的信息
RootNode=new BQ_TreeNode(m_RootMatID);
RootNode.MatID =m_RootMatID;
alNode.Add(RootNode);
this.Nodes .Add (RootNode);
foreach(DataRow row in m_tb.Rows )
{
BQ_TreeNode FNode=null;
BQ_TreeNode CNode=null;
CNode=MakeArray(row["ID"].ToString (),row["物料编码"].ToString (),out FNode);
FNode.Nodes.Add (CNode);
}
RootNode.Expand ();
Cursor.Current =Cursors.Default ;
}
// <summary>
/// 构造一个动态数组,模拟树控件一个分叉的线性结构,每一次都是最新的线性结构,这整个控件关键地方
/// </summary>
/// <param name="strID">层次</param>
/// <param name="MatID">物料编码</param>
/// <param name="nodeF">父节点</param>
/// <returns>构造的节点</returns>。
private BQ_TreeNode MakeArray(string strID,string MatID,out BQ_TreeNode nodeF) {
try
{
BQ_TreeNode node=new BQ_TreeNode (MatID);
node.MatID =MatID;
BQ_TreeNode nodeRet=null;
int nGrade=int.Parse (strID);
if(nGrade==0)
{
}
else
{
if(alNode.Count>=nGrade+1)
{
alNode[nGrade]=node;
nodeRet=(BQ_TreeNode)alNode[nGrade-1];
}
else
{
alNode.Add (node);
nodeRet=(BQ_TreeNode)alNode[nGrade-1];
}
}
nodeF=nodeRet;
return node;
}
catch(Exception e)
{
throw new Exception("",e);
}
}
public string RootMatID
{
get
{
return m_RootMatID;
}
set
{
m_RootMatID=value;
}
}
}
}
经过编译就可以把控件BQ_TreeView添加进来,如下图(图<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 不用第归算法快速显示树,对于Oracle数据库(2)
- 不用第归算法快速显示树,对于Oracle数据库(2)
- 不用第归算法快速显示树,对于Oracle数据库(1)
- 算法竞赛入门经典 快速排序和并归排序
- oracle 数据库 对于时间操作
- JDBC快速入门教程,连接数据库不用愁。
- 不用循环,显示1~100算法
- 快速启动Oracle数据库
- 不用安装oracle客户端访问数据库
- 对于Oracle数据库全文索引设置步骤
- 不用迭代算法而快速实现的jsp树结构
- 不用迭代算法而快速实现的jsp树结构
- 不用迭代算法而快速实现的jsp树结构
- 不用迭代算法而快速实现的jsp树结构
- 并归排序算法
- 并归排序算法
- 不用连接数据库,建个临时数据库,显示表
- 排序算法-->选择排序,插入排序,并归排序,快速排序
- C# 2.0 Specification(泛型五)
- [转载]ASP.NET AJAX入门系列
- 串口发送数据类
- C# 2.0 Specification(泛型六)
- 串口发送数据类
- 不用第归算法快速显示树,对于Oracle数据库(2)
- 简介使用ASP.NET访问Oracle数据库的方法
- ASP.NET Whidbey 中新的代码编译功能
- 使用更精简的代码保证 ASP.NET 应用程序的安全
- 看看这段代码就知道char到底能不能放下中文字
- Websharp使用说明(1)
- Websharp使用说明(3)
- 短信搜索相关
- Websharp使用说明(4)