2012-04-17 101 views
1

我正在使用ASP.net;我有一个弹出式浏览器窗口,其中包含带文本框的数据绑定网格视图。它有一个“添加到订单”按钮,它接受输入的值并更新数据库,然后关闭弹出窗口并刷新父项。这目前完美使用window.opener.document.forms[0].submit();self.close();在一个RegisterScriptBlock如何刷新GridView页面上的父浏览器窗口change

我现在需要更新gridview页chage上的数据库,以便文本框值不会丢失。我将window.opener.document.forms[0].submit();放入数据网格的PageIndexChanging事件中,但它不刷新父窗口。使用订单行刷新父窗口可以帮助用户查看他们已经订购的内容。我的更新数据库方法运行良好,只是不是父浏览器刷新。我也试过“window.opener.location.href = window.opener.location.href”无济于事。

预先感谢您!

+0

你可以给你在PageIndexChanging事件上写的代码吗? – 2012-04-17 07:05:09

+1

这是代码片段。 '保护小组grdDisplay_PageIndexChanging(发送者为对象,例如作为System.Web.UI.WebControls.GridViewPageEventArgs)处理grdDisplay.PageIndexChanging 昏暗strScript作为新的StringBuilder() 呼叫为addItems() grdDisplay.PageIndex = e.NewPageIndex 呼叫搜索() strScript.Append(“”) ClientScript.RegisterStartupScript(Me.GetType,“RefreshWindow”, strScript.ToString) End Sub' – Kerberos42 2012-04-17 08:36:34

回答

1

在父母的aspx页面写一个JavaScript函数

function fnReload() { 
     alert('hi') 
     window.location.href = window.location.href; 
    } 

Protected Sub grdDisplay_PageIndexChanging(sender As Object, e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles grdDisplay.PageIndexChanging 
    Dim strScript As New StringBuilder() 
    Call addItems() 
    grdDisplay.PageIndex = e.NewPageIndex 
    Call search() 
    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "reload", "window.opener.fnReload();", true); 
End Sub 

警戒同样插入fnReload()功能检查调用或不是此功能。

+0

我试过了,Alert()没有任何反应,所以出于某种原因,函数没有被调用。有没有其他的方法来注入可以工作的Javascript?我不熟悉Javascript和asp.net以上的基础知识。 – Kerberos42 2012-04-17 19:41:26

+1

嗨,你可以试试这个 strScript.Append(“window.opener.fnReload()”) ClientScript.RegisterStartupScript(Me.GetType,Me.Page.GetType(),“RefreshWindow”,strScript.ToString,True) – 2012-04-18 07:37:10

+0

由于参数错误数量无效,必须删除其中一个GetType参数,但不行。我有这在我的父页面: Kerberos42 2012-04-19 03:01:56

相关问题