动态添加的叶子节点怎么去掉前面的+号?

wangjun_2008 2010-01-10 03:16:15
树刚开始是空的:
//初始化
TreeNode NewNode = new TreeNode("根节点", "00");
NewNode.ImageUrl = "../images/OUTOPEN.BMP";
NewNode.PopulateOnDemand = false;
NewNode.Expanded = true;
NewNode.SelectAction = TreeNodeSelectAction.SelectExpand;

TreeNode NewChildNode1 = new TreeNode("节点1", "file");
NewChildNode1.PopulateOnDemand = true;
NewChildNode1.ImageUrl = "../images/OUTCLOSE.BMP";
NewChildNode1.Expanded = false;
NewChildNode1.SelectAction = TreeNodeSelectAction.SelectExpand;
NewNode.ChildNodes.Add(NewChildNode1);

TreeNode NewChildNode2 = new TreeNode("节点2", "item");
NewChildNode2.PopulateOnDemand = true;
NewChildNode2.ImageUrl = "../images/OUTCLOSE.BMP";
NewChildNode2.Expanded = false;
NewChildNode2.SelectAction = TreeNodeSelectAction.SelectExpand;
NewNode.ChildNodes.Add(NewChildNode2);

this.TreeView1.Nodes.Add(NewNode);

这样树就有了1个根2个子节点,现在我需要在单击某个父节点是才动态添加其子节点,比如在点"节点1"时从数据库中读出几条记录添加为"节点1"的子节点,是这样做的:

//点击某个节点时触发
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string sql = "XXXXXXXXX"; //这里根据不同情况拼一条SQL语句
AddChildNodes(TreeView1.SelectedNode, strSql); //调用添加子节点函数
}
//添加子节点
void AddChildNodes(TreeNode node, string strSql)
{
//获取记录
if (node.ChildNodes.Count == 0)
{
foreach (DataRow row in dt.Rows)//把获取的记录一条一条添加为子节点
{
TreeNode NewNode = new TreeNode(row["Name"].ToString(), row["Code"].ToString());
if (row["url"].ToString() != "")
{
NewNode.Expanded = true; //查资料说这样就可以了,但是不行,添加的子节点前面还有加号,用NewNode.Expand(); NewNode.ExpandAll();这些都不行
NewNode.ImageUrl = "images/icon1.gif";
NewNode.NavigateUrl = row["url"].ToString();
NewNode.Target = "right";
NewNode.SelectAction = TreeNodeSelectAction.Select;
}
else
{
NewNode.Expanded = false;
NewNode.SelectAction = TreeNodeSelectAction.SelectExpand;
}
NewNode.PopulateOnDemand = true;
node.ChildNodes.Add(NewNode);

}
}
}
添加上去的子节点前面都有加号,我是不想要加号,因为这已经都是叶子节点了,不该有加号的,请帮忙看下该怎么弄?

...全文
162 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjun_2008 2010-01-10
  • 打赏
  • 举报
回复
node没有ShowExpandCollapse这个属性啊?treeview有,但是针对所有节点的
xray2005 2010-01-10
  • 打赏
  • 举报
回复
默认情况,子节点就是没有
如:
<div>
<asp:TreeView ID="tree" runat="server"></asp:TreeView>
</div>

TreeNode node = new TreeNode();

node.Text = "Node1";

TreeNode node2 = new TreeNode();
node2.Text = "Node2";

node.ChildNodes.Add(node2);
TreeNode node3 = new TreeNode();
node3.Text = "node3";
this.tree.Nodes.Add(node);
this.tree.Nodes.Add(node3);
xray2005 2010-01-10
  • 打赏
  • 举报
回复
if (node.ChildNodes.Count == 0)
{
node.ShowExpandCollapse = false
//其他的代码
}
wangjun_2008 2010-01-10
  • 打赏
  • 举报
回复
父节点前的还是要的,就是叶子节点不要
wuyq11 2010-01-10
  • 打赏
  • 举报
回复
ShowExpandCollapse 获取或设置一个值,它指示是否显示展开节点指示符。
ShowLines 获取或设置一个值,它指示是否显示连接子节点和父节点的线条。
koukoujiayi 2010-01-10
  • 打赏
  • 举报
回复
这句可以不显示前面的+
TreeView1.ShowExpandCollapse = false;
seesea125 2010-01-10
  • 打赏
  • 举报
回复
NewNode.Expanded = true; //查资料说这样就可以了,但是不行,添加的子节点前面还有加号,用NewNode.Expand(); NewNode.ExpandAll();这些都不行

expanded属性是还可以不可以扩展的意思,应该是false才对吧?

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧