Обновить родительскую страницу после закрытия 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