• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

Iframe 与包含页间沟通的问题,大伙一起来想想吧!!!???

ColorSM 2002-04-12 01:56:42
我把 TreeView 建在单独一页(page01.aspx)中,然后在另一页(page02.aspx)中 用一 Iframe 链接此 TreeView页。问题是:

我怎样在选择 TreeView 选项时,改变父页(page02.aspx)中的某一变量的值(例如一文本框中的文本)????
...全文
7 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
niwalker 2002-04-15
可以做到,但是比较麻烦,因为IFRAME不是服务器对象,没有办法直接读取,要实现这样的功能你只能把TreeView状态保存成Session或其他的全局变量,还要自己编写一个事件处理。
另外一种可替代的方法是不使用iframe,用user control来代替,这样相对简单些,我就是采用这种方法的。
回复
yxrj 2002-04-15
客户端代码使表单提交或改变url
然后服务器端就可以获得你要的值
之后你想要做什么都可以了

这难道还不行?
回复
ColorSM 2002-04-13
这里还是用的是客户瑞的代码呀!!!

回复
yxrj 2002-04-12
以上方法试验成功,但是此方法只对 page02.aspx 页面中的客户端控件起作用。如果要实验与服务端控件的交互, 不知有没有办法。


1.window.parent.location.href="page02.aspx?param="+test;
然后在page02.aspx的page_load里取Request["param"]

2.window.parent.document.all.TextBox1.value=test;
window.parent.forms[0].submit();
然后在page02.aspx的page_load里取TextBox1.Text

回复
jdxx 2002-04-12
服务器端有一个方法,但我还没有试出来:
private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{

}
我还不知道怎么用?? :)
回复
jdxx 2002-04-12
可以用 xml :
<?xml version="1.0" encoding="utf-8" ?>
<TREENODES>
<treenode type="root" Text="North America">
<treenode type="folder" Text="Michigan" NavigateUrl="aaa.aspx?id=1" taget="iFrame"/>
<treenode type="file" Text="Detroit" NavigateUrl="aaa.aspx?id=2" taget="iFrame"/>
<treenode type="file" Text="Farmington" NavigateUrl="aaa.aspx?id=3" taget="iFrame"/>
</treenode>
</treenode>
</TREENODES>
回复
ColorSM 2002-04-12
我怎样在选择 TreeView 选项时,改变父页(page02.aspx)中的某一变量的值(例如一文本框中的文本)????

假设你在选择 TreeView 选项时得到一string test
那么你就可以用js

window.parent.document.all.TextBox1.value=test;

以上方法试验成功,但是此方法只对 page02.aspx 页面中的客户端控件起作用。如果要实验与服务端控件的交互, 不知有没有办法。

兄弟们,帮帮忙!拜托!

回复
ColorSM 2002-04-12
如何实现啊?有没有谁试验成功了的。我现在没在办公室,不能试验。。
大家帮忙试验一下。到底有什么好办法???
回复
ColorSM 2002-04-12
在 .cs 文件中怎么实现?
这样才以体现 Codehide 技术的优势啊!!!
回复
yxrj 2002-04-12
我怎样在选择 TreeView 选项时,改变父页(page02.aspx)中的某一变量的值(例如一文本框中的文本)????

假设你在选择 TreeView 选项时得到一string test
那么你就可以用js
window.parent.document.all.TextBox1.value=test;
回复
ColorSM 2002-04-12
画中画。

可以在页中开一个小窗口。
回复
jdxx 2002-04-12
OK了,多谢!!
顺便问一句:iFrame是个什么冬冬??
回复
ColorSM 2002-04-12
看起来,应该是:
private void Page_Load(object sender, System.EventArgs e)
{
TreeNode n1=new TreeNode();
TreeView1.Nodes.Clear();
n1.Text="***";
TreeView1.Nodes.Add(n1);

for (int i=0;i<=20;i++)
{
n1.Text=i.ToString();
TreeView1.Nodes.AddAt(0,n1); //这样在第一节点下将产生20个子节点

//TreeView1.Nodes.Add(n1);
}
}
回复
jdxx 2002-04-12
为什么我的TreeView总是报错??
错误信息: System.Exception: Attempted to add a TreeNode to a second TreeNodeCollection. A TreeNode can belong to only one TreeNodeCollection. Remove the TreeNode from its old collection before adding it to a new one.

我的代码:
private void Page_Load(object sender, System.EventArgs e)
{
TreeNode n1=new TreeNode();
TreeView1.Nodes.Clear();
for (int i=0;i<=20;i++)
{
n1.Text=i.ToString();
TreeView1.Nodes.AddAt(i,n1);
//TreeView1.Nodes.Add(n1);
}
}

能帮我看看吗?? 最好有源码!

多谢!!!
回复
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2002-04-12 01:56
社区公告
暂无公告