说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

使用treeview数据库绑定,能不能绑到一个子节点下?

编辑:说三道四文库 发布时间:2017-12-15 08:17
HTML文档下载 WORD文档下载 PDF文档下载
开始手工加了节点,其中有子节点是可变的,须从数据库生成.
好痛苦啊!
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;  
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace myoa
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Data.OleDb.OleDbConnection oleDbConnection1;
protected System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1;
protected System.Data.DataSet dataSet1;
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
DataSet ds=new DataSet();
public string objConn;
//public string objConn ="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+"\\dATABASE\\myoa.mdb";
OleDbConnection MyConn;
OleDbDataAdapter mycommand;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//TreeView1.Width=100;
//TreeView1.Height=450;   
objConn ="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("dATABASE\\myoa.mdb");
string NodeText="-1";
MyConn=new OleDbConnection(objConn);  
mycommand=new OleDbDataAdapter("select * from tree where TreeNode='"+NodeText+"' order by NodeNumber asc",MyConn);
MyConn.Open();
mycommand.Fill(ds);
int i;
//===根结点数
for(i=0;i<ds.Tables[0].Rows.Count;i++)
{
Microsoft.Web.UI.WebControls.TreeNode myTreeNode=new Microsoft.Web.UI.WebControls.TreeNode();
//dim myTreeNode as new Microsoft.Web.UI.WebControls.TreeNode()
myTreeNode.Text=ds.Tables[0].Rows[i].ItemArray[1].ToString() ;
myTreeNode.ImageUrl="images/closedfolder.gif";
myTreeNode.ExpandedImageUrl="images/openfolder.gif";
myTreeNode.NavigateUrl="Query.aspx?NodeText="+myTreeNode.Text;
myTreeNode.Target="mainFrame";
TreeView1.Nodes.Add(myTreeNode);
//Response.Write( ds.Tables[0].Rows[i].ItemArray[0].ToString());
//Response.Write("<br>");
//Response.Write( ds.Tables[0].Rows[i].ItemArray[1].ToString());
CreateChildTree(myTreeNode,ds.Tables[0].Rows[i].ItemArray[0].ToString() ,ds.Tables[0].Rows[i].ItemArray[1].ToString() );
}
//end sub
}
public void CreateChildTree(Microsoft.Web.UI.WebControls.TreeNode ParentNode,string NodeId ,string ParentNodeText)
{
mycommand=new OleDbDataAdapter("select * from tree where TreeNode='"+NodeId+"' order by NodeNumber desc",MyConn);
//MyConn.Open();
mycommand.Fill(ds,"second");
int i;
for(i=0;i<ds.Tables["second"].Rows.Count;i++)
{
Microsoft.Web.UI.WebControls.TreeNode myTreeNode=new Microsoft.Web.UI.WebControls.TreeNode();
myTreeNode.Text=ds.Tables["second"].Rows[i].ItemArray[1].ToString();  
myTreeNode.ImageUrl="images/book.gif";
string myTreeNodeText =myTreeNode.Text;
string ParentNodeTextS =ParentNodeText;
//myTreeNodeText=Server.UrlEncode(myTreeNodeText);
//ParentNodeTextS=Server.UrlEncode(ParentNodeTextS);
myTreeNode.NavigateUrl="Query.aspx?NodeText="+myTreeNodeText+"&ParentNodeText="+ParentNodeTextS;
myTreeNode.Target="mainFrame";
ParentNode.Nodes.Add(myTreeNode);

}
ds.Tables["second"].Clear(); 
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
this.oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
this.dataSet1 = new System.Data.DataSet();
((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit();
// 
// dataSet1
// 
this.dataSet1.DataSetName = "NewDataSet";
this.dataSet1.Locale = new System.Globalization.CultureInfo("zh-CN");
this.Load += new System.EventHandler(this.Page_Load);
((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit();

}
#endregion
}

//public Sub resize()
}
初始化页面节点的代码:       
Private Sub initTree(ByVal nds As TreeNodeCollection, ByVal parentID As Integer)
            Dim dv As New DataView()
            Dim tmpNd As TreeNode
            Dim strId As Integer
            dv.Table = ds.Tables("TitleTree")
            dv.RowFilter = "parentid='" + parentID.ToString() + "'"
            Dim objRow As DataRowView

            For Each objRow In dv
                tmpNd = New TreeNode()
                strId = CInt(objRow("nodeid"))
                tmpNd.ID = strId.ToString()
                tmpNd.Text = objRow("nodename").ToString()
                tmpNd.ExpandedImageUrl = objRow("imgex").ToString()
                tmpNd.ImageUrl = objRow("img").ToString()
                tmpNd.NavigateUrl = objRow("address").ToString()
                nds.Add(tmpNd)
                initTree(nds(nds.Count - 1).Nodes, strId)
            Next

        End Sub

生成节点表的脚本文件:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[visit_TitleTree]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[visit_TitleTree]
GO

CREATE TABLE [dbo].[visit_TitleTree] (
[parentid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nodeid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[nodename] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[imgex] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[img] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[address] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO
很简单吧?:)
个人认为还是把节点都放在XML文件里比较好。数据库这东西,有的时候响应慢,树形页面就不见了。
楼上的很清楚!
【SDCC讲师专访】腾讯潘安群:腾讯云金融级数据库TDSQL分析 高颜值、高品质——安全技术论坛议题曝光! 移动应用开发者正饱受折磨 在Android平台上加载本地库的危险性 《近匠》程序员客栈,程序员背后的经纪人 【CTO讲堂】浅析工业级物联网项目的快速开发 云适配陈本峰:平台型企业级浏览器是未来办公移动化的核心 警报:XcodeGhost已扩散至第三方框架 我们眼中的应用另一端是什么? 【SDCC讲师专访】百度马如悦:不写代码的架构师不是好架构师 企业级应用避免臃肿混乱的6大黄金法则 SDCC 2015讲师专访精彩集锦:程序员界“香饽饽”、大神级人物都在! 从技术经理的角度算一算,如何可以多快好省的做个App(一) 【SDCC讲师专访】Java泛型作者Gilad Bracha:优秀的程序员应该未雨绸缪 【CTO讲堂】微服务架构在云端的应用 SDCC 2015创业项目路演火爆征集:寻找中国好项目 被遗忘的设计模式——详解Swift语言中的Null Object Pattern Synaptics发布全新触控及生物识别方案,正式进军车联网 无人机、机器人,英特尔RealSense已扩展至新领域 SDCC 2015中国软件开发者大会盛大开幕 《近匠》逸创云客服创始人叶翔:做好客服产品静待SaaS大爆发时代的到来 【SDCC2015现场】数据库实战论坛:分布式数据库的实践与挑战 SDCC 2015 中国软件开发者大会亮点回顾 《近匠》扬智科技GoWarrior:软硬件全面开源的计算平台 【CTO讲堂】独家直播双十一全网动态?前黑客“劳改”带你玩转大数据 《近匠》好雨云刘凡:提供全方位支持的一站式开发服务云平台 体验过HTC Vive,才知道何谓沉浸感 BDTC 2015:大数据技术精英云集 初版日程公布(表) 深度剖析C++对象池自动回收技术实现 React Native与ExMobi技术路线探索 SDCC 2015前端专场札记:Facebook、百度、腾讯、美团、饿了么等互联网公司的前端实战 关于C++书籍的出版社问题 讨论关于GDI+中图象处理的问题 大哥大姐们帮忙分析一下?小弟先谢了! 可以介绍一下eclipse吗? 关于oracle的基本问题,请大家帮帮我 从软件角度来讲是不是Windows更好? 关于麦克风的问题? 看这个求和的问题,怎么做才好? 请问windows xp 上面是不是没有java虚拟机啊! 基于对话框的程序,怎样做托盘的效果? fread 读文件问题 VB6.0在XP下修改字体出现的停止响应问题 《数据库系统概论》的中文电子版哪有下载? 一个有挑战性的问题, 做个实验! 硬盘少了7G 怎样在DBGrid中实现数据编辑(添加、修改、删除) Help! 请问回掉函数市什么意思? 关于多行文本框的问题 MSFlexGrid 如何绑定数据源 请教程序员的硬件试题 要求把系统管理和软件操作系统使用合并。 dialog的显示问题 Sql Server 2000下,如何定时执行一条SQL语句 刚写的Asp代码变成了乱码,我该怎么办? 高分求助 sql 查询 D3D全屏状态下如何使用系统的中文输入法? 请问通过JDBC-ODBC桥,读入中文字段乱码的问题 急,在线等待!!! 如何调用保存对话框? Together for VS.NET 两个网关的问题!在线等,结贴快! 数据库中表的问题(100分) "#program once"是什么意思? 关于JTable的问题 局部钩子能影响其它软件???? SQL Server数据库中字段取中文名好,还是取英文名好? 怎么查询一个表,当用户新增一个记录时 如何防止listCtrl的列被拖动? 我的sony记忆棒,在相机可以读,可是不能在电脑读取,请帮忙! 安装.net的菜鸟问题,帮忙```````急```` 请Skt32(荒城之月)和gzshd(郁闷)大侠进来拿分! 有汉字输入的字符串,要限定其长度不超过100个字符,用正则表达式如何实现? 0x69514818指令引用的“0x14084268”内存错误 大家觉得以下哪一种 C语言 开发工具比较好?谢谢。 有关利用ms中的函数scardconnect()读手机sim卡的问题(很急!!) 从word 表格里面导入文本到Access 文件中没了回车换行,怎么解决? 如何将非主窗体放到任务栏里!!(在线等待) 打印RichTextBox中的文本 “遽下断语”是什么意思? 英语翻译1 混乱的语序2 不切实际的3 大概计算一下4 你的能力值得公司开出的薪水5 抬头挺胸,坐姿端正 1.我胆怯地听着她翻阅练习册的声音.2.我的各科成绩竟然进步很快3.我从小就是个脑袋里充满怪念头的人 缩句和改病句,正确率.缩句:我羞怯地低着头,两手死死拽住继父的衣角.改病句:继父这样用心良苦地帮助我,就是让我能自食其力,自己养活自己. 天天酷跑流星狮爷和小单车哪个比较好 天天酷跑流星狮爷和小单车哪个分高 天天酷跑小单车和流星狮爷哪个好 请问dig for victory allotment怎么翻译? 如果一个幂级数的系数是另外两个幂级数的和,那么他们三者的关系?对了!是收敛半径的关系! 天天酷跑流星狮爷和小单车哪个好 幂级数求收敛区间,有时直接就可以用系数比的公式求,有时为什么还要用级数收敛的比值判别法来求?求大神总结什么时候直接用公式,什么时候要用比值法? 安倍声称日本已作好了制衡中国的准备叙利亚向禁止化武组织提交销毁化武计划安倍竟把中日关系逼到了死胡同?英国一女士患巨结肠病 腹部肿大好似怀德国组阁谈判紧张进行 新联合政府或增缅甸商家开始接受信用卡付款 硬件不足德媒:美窃听默克尔手机已长达十年 奥英国内阁部长称BBC不透明 拨款资金格陵兰拟向中澳开放铀矿与稀土 仍需丹英国遭近年最大暴风雨袭击 一男孩或已英国一女士患巨结肠病 腹部肿大好似怀中联重科:完成M TEC并购交割爱在春天 人行衡水市中心支行帮扶活动【高清组图】最美衡水湖:一起倾听花开“我歌2”总决赛,张嘉译跨界帮帮唱去长沙陵园扫墓,请尽量公交出行信息公开,要主动更要真心[长城时评]别让“广场舞”成为“最扰【古树名木】燕郊镇古槐屹立700年依出城往西,到关羽的兵营露营去这是什么姿势?“敦煌拳”河北:清明“五一”期间小型客车免费通血腥王妃百花演义纵横九世和镇往事天行健之天道酬勤星战之帝国狂想曲预言之天生无魔械之神医缘录异形之灾重生之极品驸马爷鄯善旅游二道桥清真寺旅游孔雀河旅游琼库什台旅游霍城县薰衣草基地旅游会议展览中心旅游上海街旅游岗顶前地旅游湾仔旅游码头旅游新民三农博览园旅游青山关旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘