2012-04-17 103 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

相關問題