(100分)webform中如何修改treeview 选中节点后的颜色
本帖最后由 a13951845000 于 2013-10-28 10:05:18 编辑 开发环境:vs2010,webform中如何修改treeview选中节点后的颜色。谢谢!
[解决办法]
public Form1()
{
InitializeComponent();
treeView1.HideSelection = true;
}
TreeNode preNode = null;
private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
if (preNode != null)
preNode.ForeColor = Color.Black;
e.Node.ForeColor = Color.Blue;
preNode = e.Node;
}
[解决办法]
楼上的不能实现,论坛有类似提问
[解决办法]
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace Galsun.Test.Web
{
public partial class TreeView : System.Web.UI.Page
{
DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dt.Columns.Add("a1");
dt.Columns.Add("a2");
dt.Columns.Add("a3");
dt.Columns.Add("num", Type.GetType("System.Int32"));
dt.Columns.Add("url");
dt.Rows.Add(new object[] { "1", "0", "我的文件夹", 2, "http://www.sina.com.cn" });
dt.Rows.Add(new object[] { "2", "0", "工作文件夹", 1, "http://www.baidu.com" });
dt.Rows.Add(new object[] { "3", "1", "图片", 1, "http://www.qq.com" });
dt.Rows.Add(new object[] { "4", "1", "文档", 2, "http://www.hao123.com" });
dt.Rows.Add(new object[] { "5", "3", "风景", 2, "http://www.163.com" });
dt.Rows.Add(new object[] { "6", "3", "人物", 1, "http://bbs.csdn.net" });
dt.Rows.Add(new object[] { "7", "2", "报告", 1, "http://www.taobao.com" });
dt.Rows.Add(new object[] { "8", "3", "写真", 3, "http://www.liuzhou.gov.cn" });
bindData("0", TreeView2.Nodes, "根目录");
}
}
private void bindData(string parentid, TreeNodeCollection tnc,string path)
{
DataRow[] ary_row = dt.Select("a2=" + parentid, "num");
foreach (DataRow item in ary_row)
{
TreeNode node = new TreeNode();
string txtpath = path + "//" + item["a3"].ToString();
node.Text = string.Format("<font onclick="selval(this,'{1}','{2}')" style="cursor:pointer;">{0}</font>", item["a3"].ToString(), item["url"].ToString(),"Right");
node.Value = item["a1"].ToString();
node.Expanded = true;//是否展开
//node.ShowCheckBox = true;//是否显示选择框
node.SelectAction = TreeNodeSelectAction.None;
//node.NavigateUrl = "javascript:selval(this,'" + txtpath + "','Right');";//连接路径
//node.SelectAction = TreeNodeSelectAction.Expand;//选择事件
tnc.Add(node);
bindData(item["a1"].ToString(), tnc[tnc.Count - 1].ChildNodes, txtpath);
}
}
}
}
[解决办法]
obj.style.backgroundColor = "#eeeeee";
[解决办法]
<SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False"
HorizontalPadding="0px" VerticalPadding="0px" />
<script>
var preNode;
function selval(obj, url, target) {
//alert(obj.innerHTML);
/*
var cb = obj.parentNode.parentNode.getElementsByTagName("input");
if (cb.length > 0)
cb[0].checked = true;
document.getElementById("<%= txt_path.ClientID %>").value = obj.innerHTML;
*/
if (preNode) {
preNode.style.color = ""; //初始字体颜色
preNode.style.backgroundColor = ""; //初始字体背景
preNode.style.fontSize = 10 + "px"; //字体大小
}
obj.style.color = "#fff"; //白色字体颜色
obj.style.backgroundColor = "#FF0033"; //红色背景
obj.style.fontSize = 20 + "px";
preNode = obj;
//document.getElementById("<%= txt_path.ClientID %>").value = obj;
window.open(url, target);
}
</script>
//加一个SelectedNodeStyle-BackColor="Red"属性就ok了
<asp:TreeView ID="TreeView1" runat="server" SelectedNodeStyle-BackColor="Red" >
<Nodes>
<asp:TreeNode Text="宋德福" Value="2">
<asp:TreeNode Text="新建节点1" Value="1"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="撒地方" Value="3">
<asp:TreeNode Text="新建节点2" Value="4"></asp:TreeNode>
</asp:TreeNode>
</Nodes>
<SelectedNodeStyle BackColor="Red" />
</asp:TreeView>
现在注意到了,点击之后,是有些变成灰色。但有什么办法:1、颜色再突出些;2:如改变字体大小;3:选中其它选项后,刚才选中的项恢复原来外观。谢谢
你在liuchaolin给你的页面代码(前台)中找到这句话:<SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False"
HorizontalPadding="0px" VerticalPadding="0px" />
把BackColor="#B5B5B5" 改成 BackColor="#FF0033"
不好意思,我搞错了。
你把linchaolin的页面代码中的js代码替换成以下的就可以了<script>
var preNode;
function selval(obj, url, target) {
//alert(obj.innerHTML);
/*
var cb = obj.parentNode.parentNode.getElementsByTagName("input");
if (cb.length > 0)
cb[0].checked = true;
document.getElementById("<%= txt_path.ClientID %>").value = obj.innerHTML;
*/
if (preNode) {
preNode.style.color = ""; //初始字体颜色
preNode.style.backgroundColor = ""; //初始字体背景
preNode.style.fontSize = 10 + "px"; //字体大小
}
obj.style.color = "#fff"; //白色字体颜色
obj.style.backgroundColor = "#FF0033"; //红色背景
obj.style.fontSize = 20 + "px";
preNode = obj;
//document.getElementById("<%= txt_path.ClientID %>").value = obj;
window.open(url, target);
}
</script>