TreeView展开节点和保存节点问题

diablovi1 2007-05-09 03:52:24
如果获取当前TreeView展开了哪些节点并如何保存,如果指定TreeView展开已保存的节点数据.
...全文
625 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
diablovi1 2007-05-09
  • 打赏
  • 举报
回复
框架的,虽然不适合,也不错
Qim 2007-05-09
  • 打赏
  • 举报
回复
如果节点太多,遍历保存后,再打开,似乎对性能影响很大.
diablovi1 2007-05-09
  • 打赏
  • 举报
回复
diablovi1@163.com
trainli 2007-05-09
  • 打赏
  • 举报
回复
你給我郵箱我發給你﹗
trainli 2007-05-09
  • 打赏
  • 举报
回复
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="leftframe.aspx.cs" Inherits="leftframe" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>未命名頁面</title>
<link type="text/css" href="templates/body.css" rel=stylesheet />
<script language="javascript" type="text/javascript">
function onclicktr()
{

var obj=event.srcElement;
if(obj.href!=null)
{
var objhref=obj.href;
objhref=objhref.substr(objhref.indexOf(",")+3,objhref.length-objhref.indexOf(",")-5);
objhref=objhref.replace(/\\\\/g,"/");

if(objhref.lastIndexOf(".aspx")+5==objhref.length)
{
var iner=obj.innerHTML;
var val=obj.value;
parent.parent.resizeFrame.document.getElementById("select_title").innerHTML=iner;
parent.mainFrame.location.href=objhref;
}
}
}
function mouseover()
{
var obj=event.srcElement;
if(obj.href!=null && obj.href.indexOf("javascript:__doPostBack")>=0)
{
var objhref=obj.href;
obj.href=objhref.replace("javascript:__doPostBack","javascript:noPostBack");
}
}

function noPostBack(eventTarget, eventArgument) {}

</script>
</head>
<body leftmargin="0" rightmargin="0" topmargin="0" onload="javascript:window.status='歡迎光臨江門冠暉制衣廠(冠華國際)B/S結構ERP系統'">
<form id="form1" runat="server">
<asp:TreeView ID="TreMenu" runat="server" DataSourceID="MenuXML" ExpandDepth="1"
ImageSet="Simple" NodeIndent="10" ShowLines="True" Width="100%" onmouseover="javascript:mouseover();" onclick="javascript:onclicktr();" >
<DataBindings >
<asp:TreeNodeBinding DataMember="MenuRoot" TextField="Text" ValueField="url" />
<asp:TreeNodeBinding DataMember="TwoNode" TextField="TwoShowText" ValueField="url"/>
<asp:TreeNodeBinding DataMember="TwoNode_1" TextField="TextShow" ValueField="url" />
<asp:TreeNodeBinding DataMember="TwoNode_1_1" TextField="TextShow" ValueField="url" />
</DataBindings>
</asp:TreeView>
<asp:XmlDataSource ID="MenuXML" runat="server" DataFile="~/Menu.xml"></asp:XmlDataSource>
</form>
</body>
</html>
diablovi1 2007-05-09
  • 打赏
  • 举报
回复
EnableViewState有设置TRUE啊,但是怎么提交到连接页面?
trainli 2007-05-09
  • 打赏
  • 举报
回复
那就是設置它的EnableViewState的屬性為true就可以了呀﹗
現不行就得重寫javascript方法不用他內有的方法﹗
我現在有這樣的方法點擊不給它提交本頁﹐就象用ASP寫的那樣﹗
diablovi1 2007-05-09
  • 打赏
  • 举报
回复
是的
aaajedll 2007-05-09
  • 打赏
  • 举报
回复
你的意思就是说,当前有5个页面(a,b,c,d,e)当我点树A节点,跳出a页面,但是在a 页面上也有树型控件,而a页面上的树形控件所展开的节点要和主页面上树形控件所展开的节点一模一样?
就是在主页面上展开几点节点,在子页面上也要展开几个节点,是这个意思吗?
hbyelang 2007-05-09
  • 打赏
  • 举报
回复
循环保存到Session里,在读出来
diablovi1 2007-05-09
  • 打赏
  • 举报
回复
因为这个树是在多个页面做为菜单用,默认全部折叠.比如我在当前页面展开一个菜单,那么连接到另一个页面要获取这个页面以展开的菜单,并在连接到的页面进行展开
aaajedll 2007-05-09
  • 打赏
  • 举报
回复
以下这段代码就是把数据库里的数据绑定到节点上,LZ可以看一下~!我到现在还是没看明白LZ的意思,可能是我太笨了~!
/// <summary>
/// 初始化树
/// </summary>
private void InitTree()
{
TreeNode pNode=(TreeNode)null;
string ItemNodeData;
TvEvalItem.Nodes.Clear();
Business.EvalItem currEvalItem=new Business.EvalItem();
DataSet ds;
if(Session["EditionID"] == null)
{
Business.EvalItemEdition NewEdition = new Siwei.SES.Business.EvalItemEdition();
DataRow dr = NewEdition.RetrieveIsValidationEditionID();
ds=currEvalItem.RetrieveEditionAll (Convert.ToInt32(dr["ID"].ToString().Trim()));
}
else
{
int EditionID = Convert.ToInt32(Session["EditionID"].ToString().Trim());
ds=currEvalItem.RetrieveEditionAll(EditionID);
}
DataView dvTree=new DataView(ds.Tables[0]);
dvTree.Sort="orderid";
if (dvTree.Count!=0 )
{
foreach(DataRowView Row in dvTree)
{
TreeNode Node=new TreeNode() ;
Node.Text = Row["EvalItemStrID"].ToString()+"  "+Row["EvalItemName"].ToString();
Node.NodeData = Row["id"].ToString();
Node.NavigateUrl="EvalItemView.aspx?action=main&EvalItemID="+ Row["id"].ToString()+"&EditionID="+Row["EditionID"].ToString();
Node.Target="mainFrame";
ItemNodeData=Row["SuperEvalItemID"].ToString().Trim();
if(TvEvalItem.GetNodeFromIndex("0") == null)
{
TvEvalItem.Nodes.Add(Node);
Node.Expanded=true;
HasItem.Add(Row["id"].ToString().Trim(),Node.GetNodeIndex());

}
else
{
pNode=GetNode(ItemNodeData);
if(pNode!=null)
{
pNode.Nodes.Add(Node);
Node.Expanded = false;
HasItem.Add(Row["id"].ToString().Trim(),Node.GetNodeIndex());
}
}
}
}
if (ds!=null) ds.Dispose();
}

private TreeNode GetNode(string ItemNodeData)
{
string StrNodeIndex="";
if(HasItem.ContainsKey(ItemNodeData))
{
StrNodeIndex=HasItem[ItemNodeData].ToString();
return(TvEvalItem.GetNodeFromIndex(StrNodeIndex));
}
else
{
return(null);
}



}
  • 打赏
  • 举报
回复
对这个控件,没怎么用过
diablovi1 2007-05-09
  • 打赏
  • 举报
回复
保存到SESSION变量里,主要是获取已展开的节点
aaajedll 2007-05-09
  • 打赏
  • 举报
回复
LZ指的保存是保存到哪里?
diablovi1 2007-05-09
  • 打赏
  • 举报
回复
高手们帮帮忙,急用啊

62,046

社区成员

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

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

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

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