关于treeview,左边点击右边显示的问题。一周了,急。没有分了,对不起。

azhou88 2016-05-01 11:17:20
想要实现: 左边放了个treeview 。右边放置了一个iframe。当点击左边的时候,右边的页面发生变化。。

右边发生变化的是一个aspx,或web页面。

本来不想使用iframe,但是差了很多资料,并且实验了很多,都不成功。(谁有好的方法介绍一下)

迫于无奈,使用了额iframe,但是问题又出来了。


我把代码贴出来,希望大家帮帮我。

/*********显示页面**************/
<body>
<form id="form1" runat="server">
<div class="myclass">
<div class="lefdiv">
<asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1"
onselectednodechanged="TreeView1_SelectedNodeChanged">
<DataBindings>
<asp:TreeNodeBinding TextField="title" />
</DataBindings>
</asp:TreeView>
</div>
<div class="rightclass">
<iframe id="azhou88" class="iframe" runat="server">

</iframe>
</div>
</div>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/XMLFile.xml"></asp:XmlDataSource>
</form>
</body>

/*****************cs******************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

if(!Page.IsPostBack)
{
TreeView1.ExpandDepth = 1; //加载的时候只显示第一层
TreeView1.ToolTip = "好好研究";



}
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
String FilePath;
FilePath = Server.MapPath("Default2.aspx");
string url = FilePath + TreeView1.SelectedNode.Text.Trim() + ".aspx"; //当点击某个节点的时候取得它的text并加上路径等
this.azhou88.Attributes.Add("src", "url ");//给iframe 添加链接。链接地址就是点击的那个节点

Response.Write("You selected: " + url);

/************************/

//if (TreeView1.SelectedNode == null) return;//选择的节点为空
//if (TreeView1.SelectedNode.Depth == 0) //判断节点深度
//{
// Response.Write("You selected: " + "节点的深度为0");
//}

/********************************/
//int nodeid = Convert.ToInt32(TreeView1.SelectedValue);
// string str = TreeView1.SelectedNode.Text;

}
}
现在出现的问题是,如果我把url 直接换成http://www.baidu.com这样子 ,就能打开页面。但是如果按照上面就不行,打不开报错。

有人推荐使用js.但是我对js不熟悉,而且我必须要判断点击某一个节点显示对应的web页面。使用js可能更会麻烦,因为我必定要判断点击,取得点击啊。

不知道我的思路是否有问题。求大家帮帮忙。分少。大家讲究点。
...全文
210 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
huxiaoiqing0007 2016-05-02
  • 打赏
  • 举报
回复
FilePath = Server.MapPath("Default2.aspx"); string url = FilePath + TreeView1.SelectedNode.Text.Trim() + ".aspx"; 你这个url最后的结果是Default2.aspx+SelectedNode.Text+".aspx"。这根本不是一个合法的页面地址啊,能打开才见鬼
範先森 2016-05-01
  • 打赏
  • 举报
回复
FilePath = Server.MapPath("Default2.aspx"); string url = FilePath + TreeView1.SelectedNode.Text.Trim() + ".aspx"; //当点击某个节点的时候取得它的text并加上路径等 这两句出的问题吧,你试试你这边输出的URL是什么就知道什么问题了
孟子E章 2016-05-01
  • 打赏
  • 举报
回复
FilePath = Server.MapPath("Default2.aspx");是物理路径啊,不能在url中使用的,要使用相对路径或者决定路径,如 string url = TreeView1.SelectedNode.Text.Trim() + ".aspx";就可以,如果文件相同的文件夹下

62,272

社区成员

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

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

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

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