TreeNode.trage的使用

对于trage的使用 msdn是这样解释的

TreeNode.Target 属性

.NET Framework 2.0

注意:此属性在 .NET Framework 2.0 版中是新增的。

获取或设置用来显示与节点关联的网页内容的目标窗口或框架。

命名空间:System.Web.UI.WebControls
程序集:System.Web(在 system.web.dll 中)


但是对我这样的编程小学生,对这个解释表示很难理解,结合我的代码来说,就很容易懂了。

 root.Target = "Product";
  root.NavigateUrl = "~/Product.aspx?CategoryID="+root.Value;


对于这个节点,当点击之后,会打开一个网页,那么这个网页是在哪里打开呢?我们看看defaulf网页的代码。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <frameset id="Default" rows="100,50,*" frameborder="0" border="0" framespacing="0">
	<frame id="Header" name="Header" src="Header.aspx" scrolling="auto" noresize></frame>
	<frame id="Toolbar" name="Toolbar" src="Daohang.aspx" scrolling="no" noresize></frame>
	<frameset id="Main" cols="170,*" rows="*" border="0" framespacing="0">
		<frame name="MenuTree" src="Classes.aspx" scrolling="auto" frameborder="0" noresize></frame>
		<frame name="Product" src="Product.aspx?CategoryID=27" scrolling="auto" frameborder="0"></frame>
	</frameset>	
</frameset>
</body>
</html>


在defaulf中,有一个frame的name是product,这和上代码中的    root.Target = "Product";对应,所以我们可以理解

当点击这个节点之后,由navigatrurl指向的网页将会在name是product的frame中打开,这就是我理解的TreeNode.trage的作用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常抱歉,我的回答仍然是错误的。在 Java 中, `TreeNode` 类确实没有提供 `getNextSibling()` 方法。如果需要判断一个节点是否有下一个兄弟节点,可以考虑以下两种方式: 1. 使用 `getParent()` 和 `getChildAt()` 方法 可以通过 `getParent()` 方法获取当前节点的父节点,然后通过 `getChildAt()` 方法获取当前节点在父节点中的索引,最后通过索引获取下一个兄弟节点,判断是否为 `null`。示例代码如下: ```java TreeNode parent = treeNode.getParent(); if (parent != null) { int index = parent.getIndex(treeNode); TreeNode nextSibling = parent.getChildAt(index + 1); if (nextSibling != null) { // has next sibling } else { // no next sibling } } ``` 2. 自定义节点类 如果 `TreeNode` 类无法满足需求,可以自定义一个节点类,来存储节点的关系等信息。示例代码如下: ```java public class Node { private Node parent; private List<Node> children; // other fields and methods public boolean hasNextSibling() { if (parent == null) { return false; } int index = parent.children.indexOf(this); return index < parent.children.size() - 1; } } ``` 这样,就可以通过判断当前节点在父节点中的索引,来判断是否有下一个兄弟节点。 回到你的问题,如果要遍历树中的所有节点进行处理,可以使用递归的方式。具体实现可以参考以下代码: ```java public void exportTreeToExcel(TreeNode treeNode, int row, int column, Sheet sheet) { if (treeNode == null) { return; } // 处理当前节点 Row currentRow = sheet.getRow(row); if (currentRow == null) { currentRow = sheet.createRow(row); } Cell cell = currentRow.createCell(column); cell.setCellValue(treeNode.toString()); // 递归处理子节点 for (TreeNode child : treeNode.children()) { exportTreeToExcel(child, row + 1, column, sheet); } // 处理兄弟节点 TreeNode nextSibling = getNextSibling(treeNode); if (nextSibling != null) { exportTreeToExcel(nextSibling, row, column + 1, sheet); } } public TreeNode getNextSibling(TreeNode treeNode) { TreeNode parent = treeNode.getParent(); if (parent == null) { return null; } int index = parent.getIndex(treeNode); if (index < parent.getChildCount() - 1) { return parent.getChildAt(index + 1); } return null; } ``` 这样,就可以遍历树中的所有节点了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值