Обновить родительскую страницу после закрытия Greybox - PullRequest
2 голосов
/ 24 декабря 2010

Прежде всего, счастливого Рождества всем вам:)

У меня есть блог, где люди могут оставлять комментарии. Теперь я решил поместить файл "writecomments.aspx" во всплывающее окно Greybox. Это работает, но я хочу закрыть окно из codebehind (или javascript) после написания комментария. Затем я хочу обновить страницу блога (родительскую страницу), чтобы показать новый комментарий.

Это код, который открывает страницу greybox (writecomments.aspx):

<a href='WriteComments.aspx?BlogId=<%# DataBinder.Eval(Container, "DataItem.id") %>' rel="gb_page_center[500, 500]">Skriv kommentar</a>

В файле writecomments.aspx у меня просто есть 2 текстовых поля и 1 кнопка (кнопка сохранения). Как я могу заставить окно greybox закрыться, а затем как-нибудь обновить blog.aspx? Или просто конкретная панель обновления для текущих комментариев?

Редактировать Я получил это работает, я должен был поместить этот код в коде, после db-insert: Page.ClientScript.RegisterStartupScript(this.GetType(), "close", "parent.parent.GB_hide();", true); А для обновления родительской страницы я отредактировал файл gb_scripts.js в строке 12 с false на true: this.reload_on_close=true;

Счастливого Рождества! :)

ИЗМЕНИТЬ СНОВА На самом деле, я немного его изменил, поэтому я вернул файл gb_scripts.js обратно в его состояние по умолчанию, и я просто просто следую строку кода в файле кодовой записи WriteComments.aspx, сразу после db-insert:

Page.ClientScript.RegisterStartupScript(this.GetType(), "close", "parent.parent.window.location.reload();parent.parent.GB_hide();", true);

Теперь Greybox закрывается, а затем страница блога обновляется, как я и хочу:)

Ответы [ 5 ]

1 голос
/ 17 июня 2012

Поскольку я ищу похожее поведение, в моем случае это работает: http://www.phpfreaks.com/forums/index.php?topic=235378.0

"Просьбы просматривают этот файл (gb_scripts.js) в строке № 12 change" this.reload_on_close = false;»на this.reload_on_close = true и в строке № 67 смените 'window.location.reload ();'to 'window.location.reload (true);'и сделано «Последнее редактирование: 20 декабря 2010 г., 04:38:42 утра by shashidharkumar» "

0 голосов
/ 12 ноября 2013

Вот хорошо объясненный ОТВЕТ с легкими шагами: http://www.codeofaninja.com/2010/12/how-to-refresh-greybox-parent-page.html

0 голосов
/ 31 мая 2011
0 голосов
/ 19 апреля 2012

Я получил работающую функцию close!Это код, который я должен был использовать: Page.ClientScript.RegisterStartupScript (this.GetType (), "close", "parent.parent.GB_hide ();", true);Теперь мне нужно только как-то обновить родительскую страницу:)

0 голосов
/ 24 декабря 2010

После того, как комментарий успешно сохранен в БД, отобразите следующий javascript на странице:

window.opener.reload();
window.close();

В вашем файле WriteComments.aspx.cs после успешного сохранения добавьте приведенный ниже код для визуализации JavaScript в HTML:

if (!IsClientScriptBlockRegistered("CloseMe"))
{
        String cstext1 = "<script type=\"text/javascript\">" +
            "window.opener.refresh(); window.close();</" + "script>";
        RegisterStartupScript("CloseMe", cstext1 );
}
...