解决问题就散分(iframe和Session),尽快~~~~

lovehz 2005-10-27 08:08:04
现在我有两个iframe(一个tree_iframe,right_iframe)现在我点击tree_iframe中的树的节点来改变session["id"]的值,然后用js在right_iframe中倒入一张页面main.aspx,main.aspx中DATAGRID中的值根据session["id"]的值来变化。
问题:每次点树中的节点改变session["id"]后right_iframe中的main.aspx没有获取该session["id"]的值,哪位高手请指点一下啊,谢谢楼!
...全文
187 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky_2008 2005-10-28
  • 打赏
  • 举报
回复
你用iframe.session呢
lovehz 2005-10-28
  • 打赏
  • 举报
回复
我放弃了,还是改用URL传值了,散分了。。。
adandelion 2005-10-28
  • 打赏
  • 举报
回复
<script>
function TreeViewClick()
{
var TreeView1 = document.getElementById("TreeView1");
var nodeData = TreeView1.getTreeNode(TreeView1.clickedNodeIndex).getAttribute("NodeData");
document.frames["editor"].location="main.aspx?id="+nodeData;
}

</script>

<iewc:treeview id="TreeView1" runat="server" ExpandLevel="2" SelectExpands="True" SystemImagesPath="/webctrl_client/1_0/treeimages/"
ImageUrl="images/fclose.gif" SelectedImageUrl="images/bookmark.gif" ExpandedImageUrl="images/fopen.gif"
Target="main" AutoSelect="True" wilth="100%"></iewc:treeview>


<iframe ID="editor" src="aaa.html" frameborder=1 scrolling=no width="600" height="405"></iframe>

AutoSelect="True"需要设置

aspx的PageLoad事件里加上
if (!IsPostBack)
{
TreeView1.Attributes.Add("onclick","TreeViewClick();");
}
树初始化的时候加上
node.NodeData = "数据库中的ID"; //node是初始化的节点

这样左边的数在点击的时候就不会刷新了.iframe里的URL也改变了
lovehz 2005-10-27
  • 打赏
  • 举报
回复
adandelion(被封杀) 的方法也8错,明天试下,在此也感谢一下。
lovehz 2005-10-27
  • 打赏
  • 举报
回复
好的,今天太晚了,我要回家了,明天试下,如果大家还有什么好建议,放出来哦,谢谢各位的捧场,晚安!特别感谢 swordragon(古道热肠) !我明天还要继续努力,哦也!
swordragon 2005-10-27
  • 打赏
  • 举报
回复
对不起,刚才写错了。

private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
string strIndex = TreeView1.SelectedNodeIndex;
Session["id"] = TreeView1.GetNodeFromIndex(strIndex).ID;
Response.Write("<script language='javascript'>parent.frames['right_iframe'].location.reload();</script>");
}

试试在aspx的头部追加:
<%@ OutputCache Duration="1" VaryByParam="none" %>
swordragon 2005-10-27
  • 打赏
  • 举报
回复
或者:
private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
string strIndex = TreeView1.SelectedNodeIndex;
Session["id"] = TreeView1.GetNodeFromIndex(strIndex).ID;
Response.Write("<script language='javascript'>window.frames['right_iframe'].location.reload();</script>");
}
lovehz 2005-10-27
  • 打赏
  • 举报
回复
回:swordragon(古道热肠)
谢谢你的帮忙,我试过了这样在tree_iframe里面的页面是改变session的值了,但是'main.aspx'依然没有获取这个改变的session的值,只有自己手动刷新'main.aspx'页面才能获取到,真是奇怪
swordragon 2005-10-27
  • 打赏
  • 举报
回复
private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
string strIndex = TreeView1.SelectedNodeIndex;
Session["id"] = TreeView1.GetNodeFromIndex(strIndex).ID;
Response.Write("<script language='javascript'>window.open('main.aspx','right_iframe');</script>");
}

你这样试试吧
lovehz 2005-10-27
  • 打赏
  • 举报
回复
用Session不行吗?我捣鼓了半天也没捣鼓出来,郁闷啊,难道只能通过URL传递?
jxufewbt 2005-10-27
  • 打赏
  • 举报
回复
楼上正解
adandelion 2005-10-27
  • 打赏
  • 举报
回复
这里你可以通过JS去改变左边的URL,ID也跟着传递过去了。这样左边的页面就可以不刷新了。右边的页面可以根据左边来设置了。
----------------------------
上面的错了~~~

这里点左边树的时候你可以通过JS去改变右边的URL,ID也跟着传递过去了。这样左边的页面就可以不刷新了,右边的页面可以根据左边来设置了。
Session不是好方法。
adandelion 2005-10-27
  • 打赏
  • 举报
回复
我做过一个动态的树的添加的东东,左边是数,右边可以增加修改树的子节点等等。
右边页面加一个input type="hidden" runat="server".
点击左边页面节点的时候通过JS在客户端把ID赋予右边的那个hidden域,
这里你可以通过JS去改变左边的URL,ID也跟着传递过去了。这样左边的页面就可以不刷新了。右边的页面可以根据左边来设置了。
swordragon 2005-10-27
  • 打赏
  • 举报
回复
可以把

js在right_iframe中倒入一张页面main.aspx

的代码贴出来吗?

62,046

社区成员

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

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

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

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