Как я могу обновить родительскую страницу c # из всплывающей страницы без полного обновления - PullRequest
3 голосов
/ 04 ноября 2010

Кто-нибудь знает, как я могу перезагрузить UpdatePanel на моей родительской странице C # из действия на моей всплывающей странице БЕЗ обновления всей родительской страницы.Моя родительская страница не сохраняет свое состояние в URL-адресе, поэтому пользователь, возможно, развернул здесь div, обновил список, и это состояние родительской страницы необходимо сохранить.Все, что должно произойти, это то, что UpdatePanel, содержащий GridView 'DomainObjects.Incident', должен обновляться / обновляться, когда пользователь добавил новый инцидент во всплывающем окне.

Есть ли способ связать событиямежду двумя разными страницами asp.net?Или я должен использовать JavaScript?

Ответы [ 4 ]

3 голосов
/ 04 ноября 2010

Единственный способ сделать это полностью управляемым только с помощью кода .net, если вы используете что-то вроде AjaxControlToolkit, чтобы сделать ваше всплывающее окно модальным div на главной странице.

В противном случае вы можете использовать javascript вдочерняя и родительская страница для запуска некоторого постбэка / обратного вызова на родительской странице.Вы можете установить событие обратного / обратного вызова в качестве триггера на панели обновлений.

1 голос
/ 23 ноября 2010

Вы можете обновить UpdatePanel, вызвав:

__doPostBack('<UpdatePanel ID>', '');

Если вы хотите сделать это со страницы ребенка, вы должны иметь возможность заключить вызов в функцию и вызвать его с помощью JavaScript.

Пример:

// Parent Page Refresh Function
function Refresh()
{
    __doPostBack('UpdatePanel1', '');
}

//Child Page Trigger
<input type="button" id="button1" onclick="window.opener.Refresh()" value="Refresh Parent" />

Вы, вероятно, должны убедиться, что родительский элемент все еще открыт перед вызовом Refresh (), проверив "window.opener.closed".

У меня естьне проверял этот код, поэтому может иметь type'o.

0 голосов
/ 29 ноября 2010

Если есть возможность использовать RadWindow (telerik), то возможна связь между родительской и дочерней страницами.

см. Демонстрацию http://demos.telerik.com/aspnet-ajax/window/examples/dialogreturnvalue/defaultcs.aspx

0 голосов
/ 23 ноября 2010

Посмотрите на window.opener

Ссылка на документ родительского окна

JQuery - запись в окно открывания

Моя первая мысль - это связаться с родительским окном, чтобы выполнить обновление с использованием javascript, вы могли бы видеть, что javascript вызывает ваша панель обновления через источник страницы, и использовать то же самое.

...