为TreeView正色
这段时间需要用到树形菜单,理所当然的想到了treeview,构建菜单数据表-读取并生成节点...
一切都很顺利,但是最后应用到页面上面的时候,颜色问题让我头痛了半天:
selected节点和hover节点的颜色是在丑陋(如果是浅色的底色还好一些,可是项目中是黑色的底色)
于是这两中节点上面的字就变的难以辨认(如果显示器老化或颜色比较暗的话就是一片漆黑了...)
无论怎样设置selectedstyle和hoverstyle都无济于事,最后只好在csdn发贴求助,呵呵没过多久就没孟子老大
一语点醒-“修改htc中的相关样式”,我怎么就没想到
打开/webctrl_client/1_0/treeview.htc文件,好家伙3000行... ... 既然是混色的感觉,应该是alpha吧,搜之...
找到如下几行
[code]
var oFilter = oItem.filters.item("DXImageTransform.Microsoft.Alpha");
if (oFilter)
{
oFilter.opacity *= 2; //这里改成oFilter.opacity=100,还有个地方是oFilter.opacity /= 2,同样100
}
g_styles["hoverstyle"] = "color: highlighttext; background-color:highlight; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50,style=0);"; //这里的opacity也是100
[/code]
他们分别是默认的样式和改变的样式,
呵呵,一切ok了;当时弄起来可没这么快:
http://community.csdn.net/Expert/topic/3443/3443524.xml?temp=.9843408
另外附上一个树的生成算法:
[code]
private void creatdv()
{
string c="select classID,class,parentID from Aclass order by orderID";
db d=new db(str_conn,c); //自己写的一个数据库链接类
d.initialdbconnection();
d.objsconn.Open();
SqlDataReader sdr=d.objscomm.ExecuteReader();
DataTable dt = new DataTable("table");
dt.Columns.Add("classID",System.Type.GetType("System.String"));
dt.Columns.Add("class",System.Type.GetType("System.String"));
dt.Columns.Add("pID",System.Type.GetType("System.String"));
while(sdr.Read())
{
DataRow dr=dt.NewRow();
dr["classID"]=sdr["classID"].ToString();
dr["class"]=sdr["class"].ToString();
dr["pID"]=sdr["parentID"].ToString();
dt.Rows.Add(dr);
}
d.objsconn.Close();
DataView dv=dt.DefaultView;
CreateTree(tv.Nodes,0,dv);
}
private void CreateTree(TreeNodeCollection classNodeCollection ,int pID,DataView dv)
{
dv.RowFilter="PID="+pID;
int tmpParentFolderID=0;
foreach(DataRowView drv in dv)
{
TreeNode tn=new TreeNode();
tn.ID=drv.Row["classID"].ToString();
tn.NodeData=drv.Row["classID"].ToString();
tn.Text=drv.Row["class"].ToString().Trim();
tmpParentFolderID=Int32.Parse(drv.Row["pID"].ToString().Trim());
classNodeCollection.Add(tn);
CreateTree(classNodeCollection[classNodeCollection.Count - 1].Nodes,Int32.Parse(tn.ID),dv);
}
}
[/code]
主要是一个递归函数
ps:第一次在自己的blog里写东西,看了很多大侠的blog获益良多,也不能让自己的blog总是空着了,算是开荒了
为TreeView正色相关推荐
- SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题...
转:http://blog.csdn.net/miragesky2049/article/details/7204882 SharePoint2010沙盒解决方案基础开发--关于TreeView树形控 ...
- treeview 保持选中状态
发现当treeview控件失去焦点的时候,会丢失选中状态的指示(条目的蓝色背景).如果想要保持,只要设置treeview的一个属性即可: this.treeView1.HideSelection = ...
- 遍历Treeview每个节点并初始化(C#)
搞了好久,哎,C#的一些控件用起来还没习惯,所以折腾啊. TreeView的形成,必然要初始化,数据记录是从数据库中取得的,那么要先取再遍历.介绍下心得吧. 首先,数据预期显示结果如下 其次,数据库结 ...
- 自己开发开源jquery插件--给jquery.treeview加上checkbox
很多时候需要把树状的数据显示除来,比如分类,中国省份.城市信息,等,因此这方面的javascript插件也有很多.比如性能优异的jquery.treeview和国人开发的功能强大的zTree. 我最近 ...
- dev treeview控件_在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件
DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...
- ASP.Net中的TreeView控件中对节点的上移和下移操作
Web中的TreeView中的没有PreNode和NextNode属性. 但它的集合属性中有一个IndexOf属性,从而能够找到它的前一个节点知后一个节点. TreeView中要么只有一个根节点:要么 ...
- 详解Silverlight Treeview的HierarchicalDataTemplate使用
在Silverlight项目中,Treeview控件是比较常用的表示层次或者等级的控件,该控件可以非常清晰的显示数据之间的隶属关系.对于Treeview控件的基本使用已经有很多文章介绍,这里我想讲解一 ...
- jquery treeview 树形插件
jquery treeview 插件参数说明 treeview开源地址:https://github.com/jzaefferer/jquery-treeview 1.animated:String ...
- 在winform中从外部拖动节点到树形结构(treeview和listview相互拖动)(一)
最近一个项目要用到从listview向treeview拖动item,达到从外部拖动图标成为树形结构的一部分,通过查阅资料总结了一些实现方式,分享给大家.这是winform中的例子. 在进行拖放操作之前 ...
最新文章
- 机房重构——报表问题总结
- Android webView 缓存 Cache + HTML5离线功能 解决
- 【实施工程师】Linux怎么查看当前进程
- CSS导入使用及引用的两种方法
- n1运行linux,斐讯 N1 运行 ArchLinuxARM
- PHP扩展详解(一)
- web.xml 详细介绍
- IONIC打包安卓遇到COM.ANDROID.SUPPORT:SUPPORT-V4错误的解决办法
- 数据库之互联网常用架构方案一览
- 浅谈JavaScript函数重载
- 局域网用户的限制与反限制
- 新版智能广告点击要饭网单页网站源码
- Cadence PSpice 仿真2: 三极管运放交流小信号仿真图文教程
- Git学习系列15 HEAD ORIG_HEAD FETCH_HEAD detached HEAD
- 一个方便的大文件分割web工具
- 海豚湾--纪录日本人如何杀戮海豚的
- 使用addr2line 定位 FORTIFY: vsprintf: prevented write past end of buffer‘ 报错解决思路
- iveiw:Switch开关用法
- 疯狂的“元宇宙”炒房:有玩家囤了100套房,不到半年翻6倍
- ThinkPad触摸板开启或者关闭方法