ASP.NET Обновление одного окна из другого - PullRequest
0 голосов
/ 07 ноября 2008

У меня есть страница с GridView, которая запускает всплывающее окно, используя Javascript. Затем пользователь выбирает элемент, который обновляет данные, подключенные к GridView, и закрывает всплывающее окно.

Как обновить первое (т. Е. Страницу вызова), чтобы я мог обновить данные, отображаемые в моем Gridview?

Ответы [ 4 ]

1 голос
/ 07 ноября 2008

Попробуйте это в вашем всплывающем окне:

<script>
window.opener.location.reload()
</script>

Это должно обновить страницу, открывшую всплывающее окно

0 голосов
/ 20 мая 2010

Означает ли это, что сообщение "страница не может быть обновлена"

window.opener.location = window.opener.location;

(извините, я бы просто оставил комментарий к сообщению TonyB, но у меня недостаточно SO баллов, поэтому мне нельзя ...: (

0 голосов
/ 11 ноября 2008

Вот решение:

Dim CloseScript As String = "<script language='javascript'>function closeWindow(){ window.opener.document.forms[0].submit();window.close();}closeWindow();</script>"

В .NET 2.0 вы должны добавить это на страницу, чтобы зарегистрироваться выше Javascript:

 'register with ClientScript 
    'The RegisterStartupScript method is also slightly different 
    'from ASP.NET 1.x 
    Dim s As Type = Me.[GetType]()
    If Not ClientScript.IsClientScriptBlockRegistered(s, "CloseScript") Then
        ClientScript.RegisterClientScriptBlock(s, "CloseScript", CloseScript)
    End If
0 голосов
/ 07 ноября 2008

Если вам просто нужно запустить обратную передачу на странице вызова, это должно сработать:

<script>
window.parent.document.forms[0].submit();
</script>

Отправляя форму явно, вы избегаете предупреждения, которое появляется, если вы просто обновляете вызывающую страницу.

Если вам нужно инициировать событие OnSelectedIndexChanged на GridView во время обратной передачи, то это немного сложнее, но вы должны сделать это, вызвав window.parent.document.__doPostBack() с подходящими аргументами.

...