У меня есть родительская страница с двумя элементами управления данными. Я хочу, чтобы иметь возможность открыть дочернее окно, сделать что-то на нем, и когда он закрывается, я хочу переустановить только один из двух элементов управления данными на родительской странице. У меня есть элемент управления, который я хочу обновить в UpdatePanel, поэтому хотел бы перезвонить ему и вызвать UpdatePanel.Update().Можно ли вызвать событие на стороне сервера на родительской странице при закрытии дочерней страницы?
Можно ли вызвать событие на стороне сервера на родительской странице при закрытии дочерней страницы?
ответ
Из дочернего окна вы не можете фактически «вызвать» функцию на стороне сервера для родительской страницы, однако вы можете использовать некоторый javascript для вызова функций на стороне клиента на этой странице.
На родительской странице:
<script language="Javascript" type="text/javascript">
function CallAlert()
{
alert("This is parent window's alert function.");
}
</script>
На странице ребенка:
<script language="Javascript" type="text/javascript">
function CallParentWindowAlert()
{
window.opener.CallAlert();
return false;
}
</script>
В примере, который вы указали, в частности, где у вас есть в UpdatePanel, вы на самом деле оставил себя несколько варианты здесь. Если UpdatePanel задан с помощью какой-либо формы триггера, чтобы заставить его обновлять, будь то все дети или только определенные, в вашей родительской функции вы можете принудительно отправить ответ на один из этих элементов управления. В конечном счете, функция javascript родительских страниц должна иметь некоторую форму вызова __doPostBack(), ссылаясь на идентификатор элемента управления и некоторый (пустой) параметр, однако вам, вероятно, будет лучше генерировать этот javascript с помощью codebehind через:
Page.ClientScript.GetPostBackEventReference(control, null);
Как только вы ставите это вместе, все это связано с привязкой фактического вызова к любому событию на стороне клиента, которое вы хотите на своей дочерней странице, будь то onUnLoad() или в какой-либо пользовательской функции, которую вы вызываете.
Попробуйте все, что вам нужно сделать, это вызвать __doPostBack на родительской странице, ориентированной на панель обновления или что-то в панели обновления.
Родитель Код:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Parent Window</h1>
Time:
<%= DateTime.Now.ToString() %>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
Update Panel Time<%= DateTime.Now.ToString() %>
<br />
<asp:Button ID="Button1" Text="Submit" runat="server" />
<a href="#" onclick="window.open('child.aspx')">Click To Open Child Window</a>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
Детский Код:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" language="javascript">
function UnloadMe() {
if (opener) {
opener.__doPostBack("UpdatePanel1", "");
}
}
</script>
</head>
<body onunload="UnloadMe()">
<form id="form1" runat="server">
<div>
<h1>Child Window</h1>
</div>
</form>
</body>
</html>
- 1. Можно ли сделать событие нажатия кнопки на родительской странице иметь приоритет над событием на дочерней странице
- 2. Рендеринг дочерней страницы на родительской странице
- 3. window.onbeforeunload запускается на родительской странице при определении на дочерней странице
- 4. Отключение родительской страницы при загрузке дочерней страницы
- 5. Сохранение родительской страницы в меню, когда на дочерней странице
- 6. Проверка адреса родительской страницы на дочерней странице с использованием .NET.
- 7. Показать содержимое родительской страницы на дочерней странице - Wordpress
- 8. Как вызвать событие на родительской странице с включенной страницы в PrimeFaces?
- 9. Как зафиксировать событие закрытия дочерней веб-страницы в родительской веб-странице с помощью javascript?
- 10. Можно ли вызвать код на стороне сервера, используя customErrors?
- 11. Прерванный скрипт CGI на стороне сервера при закрытии браузера на стороне клиента
- 12. Как перезагрузить частичный вид на родительской странице на странице дочерней страницы
- 13. Проверить имя дочерней страницы с родительской страницы
- 14. пожарное событие при закрытии страницы
- 15. Показать родительские страницы Wordpress на родительской странице
- 16. Изменение LayoutMdi из родительской формы при закрытии дочерней формы
- 17. Изменение изображения SRC на родительской странице при закрытии fancybox
- 18. событие главной страницы не срабатывает на дочерней странице
- 19. Можно ли вызвать событие OnMouseOver на iPhone
- 20. Страницы на стороне сервера EmberJS
- 21. Вызвать событие на странице из отдельного usercontrol
- 22. Masterpage + updatepanel на дочерней странице
- 23. Изменения на стороне сервера на стороне сервера на стороне сервера
- 24. Coords на стороне сервера загрузки страницы
- 25. Необходимо вызвать событие на стороне сервера, используя __doPostBack
- 26. Гнездо - ответьте на событие на стороне сервера
- 27. Возможно ли запустить jQuery на стороне сервера?
- 28. Не удается вызвать метод на стороне сервера?
- 29. Как обновить атрибут дочерней модели на родительской странице? Неопределенный метод
- 30. Asp.net Обработанное событие на стороне сервера