如果在父页面上更改了gridview索引,则关闭子aspx页面

时间:2011-11-17 20:01:26

标签: javascript asp.net vb.net

我有一个父页面和子页面,都是aspx。一切正常,但现在我想关闭子页面,如果用户离开子弹出页面并返回到父页面并点击其他内容,如Gridview的页面索引。如果用户转到另一个应用程序或其他位置,我无法关闭弹出子页面,我只想关闭父页面上的某些内容。

我为其他目的设置了PageIndexChange事件,我只想添加一些功能,如果Gridview索引被更改,java或其他最好的方式,可能是脚本管理器关闭子弹出页面。 / p>

我想我可能还需要检查子页是否打开。

非常感谢任何帮助和示例。

EDITED:这是打开弹出子页面的代码......

' Sets up popup to open when row selected for edit is cycled in DataRowBound event
    If IsPostBack Then
        If (e.Row.RowState And DataControlRowState.Edit) > 0 Then
            If Session("updateComplete") <> "Y" And Session("CancelUpdate") <> "Y" Then
                Dim BrowserSettings As String = "status=no,toolbar=no, scrollbars =yes,menubar=no,location=no,resizable=no," & "titlebar=no, addressbar=no, width=650, height=800"
                Dim URL As String = "pttStringPopUp.aspx"
                Dim scriptText1 As String = ("<script>javascript: var w = window.open('" & URL & "','_blank','" & BrowserSettings & "'); </script>")

                ScriptManager.RegisterStartupScript(Me, GetType(Page), "ClientScript1", scriptText1, False)
                Session("updateComplete") = "N"
            End If
        End If
    End If

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以在onclick事件中附加RowDataBound处理程序,并在关闭弹出窗口的情况下:

protected void GridView1_RowDataBound(object sender, EventArgs e)
{
    e.Row.Attributes["onclick"] = String.Format("rowClick({0});", e.Row.RowIndex); 
}

ASPX:

var dialog;
var selectedRowIndex;

rowClick = function(rowIndex){
    if (selectedRowIndex){
        if (rowIndex != selectedRowIndex){ 
            selectedRowIndex = rowIndex;
            if (dialog){
                dialog.close();
            }
        }
    }
}