Обновить родительскую страницу после закрытия Greybox

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

У меня есть блог, где люди могут комментировать. Теперь я решил поместить файл "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? Или, может быть, просто конкретная панель обновления для текущих комментариев?

Edit Я получил это работает, я должен был поместить этот код в коде, после 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 ответов

Решение

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

Поскольку я ищу подобное поведение, это работает в моем случае: 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" "

После того, как комментарий успешно сохранен в БД, создайте следующий 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 );
}

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

Другие вопросы по тегам