Использование Response.Redirect с jQuery Thickbox - PullRequest
0 голосов
/ 21 мая 2010

Я использую jQuery Thickbox для отображения iframe (upload.aspx), который позволяет пользователю загружать файл. В коде для upload.aspx я заканчиваю отправкой:

Response.Redirect("blah.aspx");

Страница, на которую я перенаправляю, является динамической в ​​зависимости от результатов процесса загрузки. Когда происходит это перенаправление, оно происходит внутри Thickbox, а не в родительском окне, как мне бы этого хотелось. Вот вызывающая страница ASP.NET (home.aspx):

<a href="upload.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=300&width=500&modal=true" class="thickbox">Add New</a>

А вот кнопка отправки внутри страницы upload.aspx:

<asp:Button ID="btnUpload" runat="server" Text="Upload" 
     OnClick="btnUpload_Click" OnClientClick="self.parent.tb_remove();" />

Это разработано, чтобы закрыть модальное окно и отправить управление коду позади, чтобы выполнить загрузку, обработку файла и т. Д.

Кто-нибудь испытывал это раньше? Как бы я отправил перенаправление на родительское окно?

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Вы не можете отправить перенаправление на родительский фрейм.

Вместо этого вам нужно использовать Javascript.

Вы можете написать top.location = "whatever"; в Javascript в <iframe>.

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

Вот что я в итоге сделал.

Добавил теги сервера в элемент body файла upload.aspx:

<body id="mBody" runat="server">

Удалил Response.Redirect и добавил JavaScript для запускаследующая загрузка.

HtmlGenericControl body = (HtmlGenericControl)Page.FindControl("mBody");
body.Attributes.Add("onload", "window.top.location.href='blah.aspx';");

И убрал клиент нажатием кнопки:

<asp:Button ID="btnUpload" runat="server" Text="Upload" 
    OnClick="btnUpload_Click" />
...