单击弹出窗口中的按钮后如何刷新上一页?

时间:2015-07-29 19:55:34

标签: c# asp.net postback popupwindow cross-page-posting

我的主页面有GridViewButton s用于添加/更新。当我单击更新按钮时,会弹出一个窗口(使用JavaScript),其中包含输入字段和Button,用于实际更新记录。我想知道的是当我点击弹出窗口内的更新按钮时如何刷新主页面。

这是我在实际更新OnClick上尝试的部分代码:

if (PreviousPage != null)
            {
                GridView gridv = (GridView)Page.PreviousPage.FindControl("GridView1");
                gridv.DataBind();
            }

在调试时,我意识到if语句从未执行过。这是否意味着弹出窗口最初没有PreviousPage?如果是这样,我怎样才能到达 Main 页面呢? (我会注意到主页不是母版页)

这是我在主页面点击按钮时创建弹出窗口的方式(所以它是一个新窗口):

function btnEditEP_Click() {
            var recID = document.getElementById('<%=tboxEdit.ClientID%>').value;
            window.open("editPopupEP.aspx?Txt=" + recID, "_blank", "toolbar=yes", "resizable=yes", "scrollbars=yes");
        }

2 个答案:

答案 0 :(得分:1)

在您的子窗口中,您可以在更新功能的子窗口调用中调用类似这样的函数

<script type="text/javascript">
        function MyFunction() {

            window.opener.PostBackParentWindow();
            window.close();
        }
  </script>

并在父窗口调用中添加此代码

  <script type="text/javascript">
 function PostBackParentWindow() {

            __doPostBack(null, null);
        }
</script>

希望它可能会有所帮助

答案 1 :(得分:0)

在更新时,单击也会执行关闭弹出呼叫

<script>
var popupWindow;

function openw(url) {
    popupWindow = window.open(url, "popup", "");
}

function closew() {
    if (popupWindow) {
        popupWindow.close();
    }
}

</script>
<a href="javascript:openw('about:blank')">open</a><br />
<a href="javascript:closew()">close</a>
像这里描述的那样。 How to close a popup window in a parent window?

然后在closw中,您可以使用true / false值调用您的父页面,具体取决于您的更新操作。您可以使用hiddenfield