自定义TreeNode,如何取出自定义的属性?

joy 2006-08-29 10:19:48
我自定义了一个TreeNode和Treeview.并在TreeNode里面增加了若干属性。

public class CompanyNode : System.Web.UI.WebControls.TreeNode

{
private string _nodeID;
private string _parentID;
private int _levelID;
private string _nodeName;

public CompanyNode()
: base()
{
}

public CompanyNode(string NodeText, string NodeValue, string ImageUrl)
: base(NodeText, NodeValue, ImageUrl)
{

}

public string NodeID
{
get { return this._nodeID; }
set { this._nodeID = value; }
}

public string ParentID
{
get { return this._parentID; }
set { this._parentID = value; }
}

public int LevelID
{
get { return this._levelID; }
set { this._levelID = value; }
}

public string NodeName
{
get { return this._nodeName; }
set { this._nodeName = value; }
}
}

public class CompanyTreeView : TreeView
{
protected override TreeNode CreateNode()
{
return new CompanyNode();
}

}

我用一下代码在装载Treeview:

AceWorld.Control.CompanyNode companyRoot = new AceWorld.Control.CompanyNode("CompanyName,"CompanyID, "../../images/star.gif");

companyRoot.NodeName = "TestNode";
companyRoot.NodeID= "TestNodeID";
companyRoot.ParentID= "TestParentID";
companyRoot.LevelID= 1;

treeView.Nodes.Add(companyRoot);


然后我想在Click树结点的时候,从节点里面取出装载时添加的属性"NodeName" "NodeID", "ParentID","LevelID"。

protected void CompanyTreeView_Setting_SelectedNodeChanged(object sender, EventArgs e)
{
CompanyNode tmpNode = (CompanyNode)(this.CompanyTreeView_Setting.SelectedNode);

}

但是 (CompanyNode)(this.CompanyTreeView_Setting.SelectedNode) 经过转换后返回的"tmpNode" ,所有属性比如 "NodeName" "NodeID", "ParentID","LevelID" 全都为Null.

大家知道怎么办吗?

(以上思路在Winform当中顺利通过,但是在asp.net中总是失败)
...全文
335 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CH_MARS 2006-08-29
  • 打赏
  • 举报
回复
我用一下代码在装载Treeview:

AceWorld.Control.CompanyNode companyRoot = new AceWorld.Control.CompanyNode("CompanyName,"CompanyID, "../../images/star.gif");

companyRoot.NodeName = "TestNode";
companyRoot.NodeID= "TestNodeID";
companyRoot.ParentID= "TestParentID";
companyRoot.LevelID= 1;

这些封装要写到public class CompanyNode : System.Web.UI.WebControls.TreeNode类里面
Eddie005 2006-08-29
  • 打赏
  • 举报
回复
那么,控件应该按下面给出的例子这样写:

private string ViewStateMyText
{
get
{
object local = base.ViewState["MyText"];
return (local != null) ? (String)local : "";
}
}

public string MyText
{
get
{
return ViewStateMyText;
}

set
{
base.ViewState["MyText"] = value;
}
}
Eddie005 2006-08-29
  • 打赏
  • 举报
回复
跟Winform中不同,如果你希望控件的某个属性能在回传后保持,那么你需要把它保存到ViewState里

62,046

社区成员

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

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

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

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