首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从子页面弹出访问父页上控制的最佳方法?

从子页面弹出访问父页上控制的最佳方法?
EN

Stack Overflow用户
提问于 2013-06-26 07:22:57
回答 2查看 3.8K关注 0票数 2

我有一个父ASP.NET页面,它有一个以弹出窗口的形式打开子ASPX页面的链接。

我需要从弹出页面的代码隐藏控制父页面。例如,启用/禁用父页中标签的可见性,或设置文本框的文本值。

我怎样才能做到这一点?

代码用于打开弹出的ASPX:

代码语言:javascript
复制
//JavaScript function:
function showPopup()
{
     var strReturn = window.open("TaxReportInputsForm.aspx",'popup','width=390,height=120');
}

按钮代码:

代码语言:javascript
复制
Page.ClientScript.RegisterStartupScript(GetType(), "popup", "showPopup();", true);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-26 09:35:18

您面临的问题是HTTP是无状态的,因此每个HTTP请求/页都是完全独立处理的--这意味着在处理来自子页面的请求时,无法直接修改父页面上呈现的内容。

但是,您可以做的是间接地修改呈现的内容,让子页面将一些标志/信息写出到子页面和父页都可以访问的某个地方,然后让父页查看该信息以确定要呈现什么。有很多不同的地方可以存储这种状态。

  • 曲奇饼
  • 会话变量 (即服务器上的内存中)
  • 在页中隐藏的字段/查询字符串中

例如,您的子页面可能会将一个ShowSomeLabel标志写入代码隐藏中的cookie,然后当子页面返回到客户端时,它强制刷新父页,然后在父页的代码隐藏中,它可以从cookie中读取该标志,以确定哪些标签应该可见。

所有这些方法都至少需要一些JavaScript才能导致父页的刷新,但是有些方法在提交之前需要额外的JavaScript将隐藏的字段/查询字符串值从子页复制到父页。您应该在哪里以及如何存储这些信息,这取决于您的具体需求。

票数 1
EN

Stack Overflow用户

发布于 2013-06-26 08:51:21

您可以尝试使用javascript,假设A.aspx是父页面,而B.aspx是打开的页面,您可以使用"opener“来控制A.aspx的DOM。

A.aspx链接标记和javascript:

代码语言:javascript
复制
<a href="B.aspx" target="_blank">open page B</a>
<script type="text/javascript">
    function fun_A() {
        alert("hello");
    }
</script>

B.aspx

代码语言:javascript
复制
<input id="btnChild" type="button" value="call function in Page A" onclick="opener.fun_A();" />

当您从A.aspx打开A.aspx并单击来自B.aspx的按钮时,您将看到A.aspx警报消息"hello“。

希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17313935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档