2012-04-17 2 views
1

Я использую ASP.net; У меня есть всплывающее окно браузера, содержащее gridview с привязкой к базе данных с текстовыми полями. Он имеет кнопку «Добавить к заказу», которая принимает введенные значения и обновляет базу данных, затем закрывает всплывающее окно и обновляет родителя. В настоящее время это прекрасно работает с использованием window.opener.document.forms[0].submit();self.close(); в RegisterScriptBlockКак обновить окно родительского браузера при изменении страницы GridView

Теперь мне нужно обновить базу данных на странице gridview, чтобы значения текстового поля не были потеряны. Я помещал window.opener.document.forms[0].submit(); в событие PageIndexChanging datagrid, но не обновлял родительское окно. Обновление родительского окна с помощью строк заказа помогает пользователю увидеть, что они уже заказали. Мой метод базы данных обновлений работает отлично, только не обновление родительского браузера. Я также попробовал «window.opener.location.href = window.opener.location.href» безрезультатно.

Спасибо заранее!

+0

Можете ли вы дать код, который вы пишете на событии PageIndexChanging? –

+1

Вот фрагмент кода. 'Protected Sub grdDisplay_PageIndexChanging (отправитель As Object, е Как System.Web.UI.WebControls.GridViewPageEventArgs) Ручки grdDisplay.PageIndexChanging Dim strScript As New StringBuilder() AddItems вызовов() grdDisplay.PageIndex = e.NewPageIndex вызов search() strScript.Append ("") ClientScript.RegisterStartupScript (Me.GetType, «RefreshWindow», strScript.ToString) End Sub' – Kerberos42

ответ

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

+1

Привет, вы можете попробовать это strScript.Append ("window.opener.fnReload()") ClientScript.RegisterStartupScript (Me.GetType, Me.Page.GetType(), "RefreshWindow", strScript.ToString, True) –

+0

I пришлось удалить один из параметров GetType из-за неправильного количества ошибок параметров, но не пойти так хорошо. У меня есть это на моей родительской странице: Kerberos42

Смежные вопросы