【问题标题】:Refresh only update panel on parent from pop-up window从弹出窗口仅刷新父级上的更新面板
【发布时间】:2013-04-02 16:43:31
【问题描述】:

我有一个按钮,可以打开一个弹出窗口和一个 Ajax 更新面板。在那个窗口内我有另一个按钮。

如果我希望在按下父页面上的按钮而不刷新整个页面时刷新更新面板,我必须运行什么代码?

我将此代码播种在刷新页面的网络上:

<div id="Container" onclick="__doPostBack('UpdatePanel1', '');">

我是 Java 的好朋友。

【问题讨论】:

  • “我是 Java 的好朋友。” ?

标签: java c# asp.net popup updatepanel


【解决方案1】:

你需要使用window.opener对象。

window.opener.document.getElementById('Container').onclick();

我建议使用 jQuery 来确保跨浏览器兼容性。当然还添加了一些空值检查。

【讨论】:

  • 不幸的是,我是 Java 的好朋友,所以我请你再次帮助我。我在打开器窗口上添加了一个按钮 btnSave,并在打开的页面中添加了一个按钮“保存”。当我按下“保存”按钮时,我添加了以下代码来运行: Response.Write(@"window.opener.document.getElemtnById('btnSave') .onclick();");现在页面正在新浏览器的标签页中重新打开。
  • btnSave 的 onclick 中有什么内容?好像有打开窗口的代码。您需要调用刷新更新面板的元素的 onclick。
  • btnSave 刷新页面。当我按下按钮时,我从 FireBug 收到以下错误:TypeError: window.opener.document.getElemtnById is not a function
  • 很抱歉代码中有错字。它是 getElementById。
  • 是的,而不是 onclick 只是点击。我不得不用 Asp.Net 生成的按钮更改按钮 ID。但是有效!谢谢!!
【解决方案2】:

使用 Jquery :

如果 DIV ID 保持不变:

$("#Container").click(function() {
  // REFRESH CONTAINER HERE
});

如果 Div ID 是动态的,则使用类而不是 ID:

$(".Container").click(function() {
  // REFRESH CONTAINER HERE
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 2012-07-09
    • 2011-05-15
    • 1970-01-01
    相关资源
    最近更新 更多