Из дочернего окна вы не можете «вызвать» функцию на стороне сервера для родительской страницы, однако вы можете использовать некоторый 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 (), ссылающуюся на id элемента управления и некоторый (пустой) параметр, однако вам, вероятно, будет лучше сгенерировать этот javascript с codebehind через:
Page.ClientScript.GetPostBackEventReference(control, null);
Как только вы соберете это вместе, все дело в том, чтобы связать фактический вызов с любым клиентским событием, которое вы хотите на своей дочерней странице, будь то onUnLoad () или в какой-то пользовательской функции, которую вы вызываете.