社区
Delphi
帖子详情
如何只获取treeview的根节点?
bluesun
2007-03-26 03:01:55
如何只获取treeview的根节点?
如果是treeview1.Items[j]就是字节点也包括在内了.
...全文
566
2
打赏
收藏
如何只获取treeview的根节点?
如何只获取treeview的根节点? 如果是treeview1.Items[j]就是字节点也包括在内了.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wwwcampus
2007-03-26
打赏
举报
回复
function GetRoot(node: TTreeNode): TTreeNode;
begin
Result := node;
while ((Result <> nil) and (Result.Parent <> nil)) do
Result := Result.Parent;
end;
hongqi162
2007-03-26
打赏
举报
回复
判断一下 TreeView1.Selected.Level或treeview1.Items[j].Level 如果等于0就是根节点了
treeview
递归方法 查询
节点
treeview
递归方法 代码+加数据库
treeview
递归调用填充
节点
用递归方法,来填充
treeview
节点
public void BindCategoryTreeVew(
TreeView
treeView
, bool isExpanded, string sSelectedData) { //将
获取
的数据转换为 一个DataTable DataTable dt = GetCategorys().Tables[0];
treeView
.Nodes.Clear();//清空 树的所有
节点
//
获取
与排序顺序中的筛选器以及指定的状态相匹配的所有System.Data.DataRow 数组 DataRow[] rowlist = dt.Select("ParentId='0'"); if (rowlist.Length <= 0) return; //创建跟
节点
TreeNode rootNode = new TreeNode(); //设置
根
节点
的属性 rootNode.Text = rowlist[0]["Text"].ToString(); //设置
根
节点
的值 rootNode.Value = rowlist[0]["NodeId"].ToString(); rootNode.Expanded = isExpanded; rootNode.Selected = true; //添加跟
节点
CategoryView.Nodes.Add(rootNode); CreateChildNode(rootNode, dt, isExpanded, sSelectedData); }
asp.net
TreeView
递归循环子
节点
生成树形菜单实例
本文实例讲述了asp.net
TreeView
递归循环子
节点
生成树形菜单的方法。分享给大家供大家参考,具体如下: 这里主要用到递归循环
获取
子结点 ///
/// 生成
根
节点
///
///
treeview> protected void Bind
TreeView
(long ID,
TreeView
treeview
) { DataTable dt = menuLogic.GetMenu2(ID, User.Identity.Name);
treeview
.Nodes.Clear();
jquery ajax
TreeView
asp.net改进版
jquery的
treeview
在显示大层次树是会卡死浏览器,我结合http://www.cnblogs.com/xuanye/archive/2009/10/26/1590250.html的改进版做的这个改进版(因为很多人没读他的源码,不知道怎么请求
节点
的处理页面),把asp.net的json序列化 都做了进去(Newtonsoft.jsonnet2.0.dll),,采用ajax+wrapperpage+usercontrol的模式生成json(因为牵涉公司两个配置文件,必须读配置信息连接数据库,绕了一下其实可以更轻量级的handler来处理,例子不能运行,但可以看看),同时扩展了很多的配置项都有说明,希望对大家有帮助 使用例如:
<script src="lib/jquery/jquery.js" type="text/javascript">treeview/js/jquery.tree.js" type="text/javascript">treeview/js/getData.js" type="text/javascript"> <script src="lib/jquery/plugins/
treeview
/js/common.js" type="text/javascript">treeview/js/tree3.js" type="text/javascript"> <script type="text/javascript"> var checknodes = "HJH8,HJA5"; //你事先要传给树控件的 已选中
节点
id $(document).ready(function() { var o = { isAsync: false, //是否异步
获取
节点
,
根
据咱的要求 设为false url: "AjaxWrapperPages/AsyncGetTreeNodes.aspx", //请求
节点
的页面,如果没有改变文件路径 不用关心 cbiconpath: "lib/jquery/plugins/
treeview
/images/icons/", //同上 checkbox icon的目录位置 //icons: ["checkbox_0.gif", "checkbox_1.gif", "checkbox_2.gif"],//不用配置 emptyiconpath: "lib/jquery/plugins/
treeview
/images/s.gif", //checkbxo三态的图片 animate: true, //不用配置,动画没有效果 theme: "bbit-tree-lines", //bbit-tree-lines ,bbit-tree-no-lines,bbit-tree-arrows有线、没线、箭头 三个样式中选择 showcheck: true //是否显示复选框 , checkNodes: checknodes //上面 你事先要传给树控件的 已选中
节点
id的变量 , rootText: "中石化单位"//
根
节点
的文本 可为空 则没有
根
节点
建议起个有意义的名字描述这棵树 //,onnodeclick: function(item) { alert(item.text); } , dbconfigPath: "~/hanwayDbConfig.hwdb" //可去掉,这是我做测试用 可不用此配置 , conStr: "conStr" //连接字符串 你可直接传,考虑安全 可不用此配置 /************ 必填项 ****************/ , sqlPath: "~/Db.hwSql" //sql语句存放的文件位置 , sqlID: "dwdyinfo" //sql对应的sqlid , dtFields: "dm,zhdm,mc" //表的结构 控件之关心3个:“主键id 外(父)键id
节点
文本” 依次','分开 , pnodeMark: "dyzhgx" //和上面的dtFields中的外键 用来构造过滤条件 如"zhdm='dyzhgx'" 查询出所有一级
节点
}; $("#tree").
treeview
(o); //到服务器处理选中
节点
$("#showchecked").click(function(e) { var changnodes = $("#tree").getTSVs(); //得到所有选中
节点
的id if (changnodes != null) { changnodes = changnodes.join(","); $.ajax({ type: "get", url: "some.aspx", data: "nodes="+changnodes, success: function(msg) { alert("Data Saved: " + msg); } }); } });
新浪阅读器的二次开发
新浪阅读器总结 一:综述 在新浪阅读器中,我首次学到了RSS(Rich Site Summary)或(Really Simple Syndication)中文名称:建议信息聚合。RSS是一种基于XML标准,在互联网上被广泛采用的内容包装和投递协议。 二:项目实现的成果和代码。 再这里面,我首先对xml文件中的内容进行总结: 1:如何加载xml文件(两种方法) A:通过打开文件对话框来打开(openfiledialog) if (openFileDialog1 .ShowDialog()==DialogResult .OK ) { String strFileName = openFileDialog1.FileName; //加载xml文件 XmlDocument doc = new XmlDocument(); doc.Load(strFileName ); } B:文件的路径是web地址 //加载xml文件 XmlDocument doc = new XmlDocument(); //文件路径可以是web地址............ doc.Load("http://rss.sina.com.cn/news/marquee/ddt.xml"); 2:如何
获取
xml的内容
获取
单一
节点
的内容(SelectSingleNode) XmlNode node = doc.SelectSingleNode("rss/channel/title");
获取
多个
节点
的内容(SelectNodes) XmlNodeList list = doc.SelectNodes("rss/channel/item"); 3:
获取
属性值(Attributes ["version"].Value) //
获取
属性(
根
节点
) XmlNode root = doc.SelectSingleNode("rss"); MessageBox.Show(root .Attributes ["version"].Value ); 4:
获取
text的内容 String title = itemlist[i].SelectSingleNode("title").InnerText; 下面对界面中学到的内容做个总结: 1:
Treeview
的afterselect事件 当点击
treeview
里面的频道信息时,加载右面的listview里面内容 如何往listview里面添加列(("日期", 100)日期表示列名,100表示列所占的长度): lv.Columns.Add("日期", 100); lv.Columns.Add("标题", 400); lv.Columns.Add("作者", 100); 将更新时间进行格式化; pubdate = Convert.ToDateTime(pubdate).ToString("yyy-mm-dd HH:mm:ss"); 向listview添加行内容的时候要注意第一个用lvi.text后面都用lvi.subitems.add 如下; lvi.Text = pubdate; lvi.SubItems.Add(title); lvi.SubItems.Add(author); lvi.Tag = link;//存储超链接 2:在
treeview
加载频道的信息(基本的格式) 首先
获取
频道的分类: XmlNodeList channelclasslist = doc.SelectNodes("opml/body/outline"); 得到频道数; ChannelClassCount = channelclasslist.Count; 通过循环来添加
treeview
的
节点
(下面的是一级
节点
) for (int i = 0; i < channelclasslist.Count;i++ ) { //增加
treeview
的一级
节点
TreeNode tnchannelclass = new TreeNode(); tnchannelclass .Text =channelclasslist [i ].Attributes ["text"].Value.Replace ("-新浪RSS","") ; tnchannelclass.Tag ="0"; tvlist.Nodes.Add(tnchannelclass ); 3:如何将全屏显示(两种方法): A:使用全局变量(省略一部分代码) private bool isfullscreen = false; private void toolStripButton15_Click(object sender, EventArgs e) { if (isfullscreen ==false ) { isfullscreen = true; panel1.Visible = false; } else //与上面情况相反 { isfullscreen = false ; panel1.Visible = true ; } B:当前界面的显示情况与当前完全相反 是在全屏按钮事件下: panel1.Visible = !panel1.Visible; 4:listview下面的内容: A:属性:Mulit select(允许选择多项) FullRowSelect(选中整行) 该listview没有默认的图片,在imagelist里面可以选择图片 B:事件(lv_SelectedIndexChanged)选择之后改变的事件 这里面当选中listview中的内容,在下面的web中加载信息 5:缓存 在新浪阅读其中还加了一个缓存: 缓存就是当选中
treeview
节点
时,访问缓存(url)判断是否有xml数据,这面分两种情况,当无缓存时,我们在这面要第一次读取,读取完将xml数据写入缓存并记录当前的读取时间,显示xml数据。当有缓存时,判断时间是否超时,如果已经超时,从网络中重新读取,读取完将xml数据写入缓存并记录当前的读取时间,显示xml数据。未超时的话,
获取
缓存中的数据显示。
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章