关于treeview,左边点击右边显示的问题。一周了,急。没有分了,对不起。
想要实现: 左边放了个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可能更会麻烦,因为我必定要判断点击,取得点击啊。
不知道我的思路是否有问题。求大家帮帮忙。分少。大家讲究点。