asp.net - radalert - radwindowmanager
cómo cerrar radwindow sin refrescar el padre (3)
¿Ha agregado un javascript OnClientClose para tomar el control de la ventana abierta?
Solo mira esto .
En realidad, el apoyo de Telerik es bastante bueno en estos asuntos (uno de los mejores que he visto) y debes publicar tu pregunta en su foro si no obtienes nada favorable aquí.
Tengo una página principal que lanza una ventana radiante telerik. Todo funciona bien Mi problema es cuando la ventana radiante se cerró, el padre volvió a cargar. No quiero esto ¿Cómo puedo cerrar radwin
Una vez que radwindow termine de procesar el valor, necesito devolverlo a la página principal, y me gustaría que la página principal tenga acceso a este valor en mi código detrás de la página.
Como dijo Bumble Bee, lo más probable es que tengas una función enlazada a OnClientClose que envíe la página, o que estés llamando a algo como GetRadWindow (). BrowserWindol.location.reload () desde la página de contenido.
Sin embargo, usted dice que desea tener el valor en el código de página de los padres. Para hacer esto, tendrá que hacer un viaje al servidor. Como no desea volver a cargar la página, la forma más fácil de hacerlo es utilizar Ajax, y si está utilizando RadControls, hay un RadAjaxManager que lo ayudará en esta tarea :)
Lo que podría hacer es lanzar una solicitud Ajax en la página principal, que usará la API del lado del cliente de RadAjaxManager para lanzar una solicitud Ajax, que le permitirá obtener los datos en el servidor. Un escenario similar al tuyo se muestra en esta demostración . En él, cuando se cierra una RadWindow (en la página de contenido), llamamos a una función de JavaScript en la página principal, que activa la solicitud de Ajax a través de RadAjaxManager y vuelve a enlazar la cuadrícula en el servidor; todo se hace sin devoluciones. Consulte estos artículos de ayuda para obtener más información sobre el tema:
Parent ASPX:
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" DestroyOnClose="true" Width="750px" Height="500px" OnClientClose="onClientClose">
<windows>
<telerik:RadWindow ID="RadWindow1" runat="server">
</telerik:RadWindow>
</windows>
</telerik:RadWindowManager>
<%-- RadAjaxManager --%>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
<ajaxsettings>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadAjaxManager1" />
<telerik:AjaxUpdatedControl ControlID="RadGrid1" />
</UpdatedControls>
</telerik:AjaxSetting>
</ajaxsettings>
</telerik:RadAjaxManager>
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
// Insert in RadWindow
function showForm(url) {
window.radopen(url, "RadWindow1");
return false;
}
function onClientClose(oWnd, args) {
// get the transferred arguments
var arg = args.get_argument();
if (arg == '''' || arg == null) {
// No need to refresh RadGrid
}
else {
$find("<%= RadAjaxManager1.ClientID %>").ajaxRequest(arg);
}
}
</script>
</telerik:RadCodeBlock>
Código del padre detrás:
protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
var result = Int32.Parse(e.Argument); // return argument from child
}
Niño ASPX
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
//mandatory for the RadWindow dialogs functionality
function getRadWindow() {
if (window.radWindow) {
return window.radWindow;
}
if (window.frameElement && window.frameElement.radWindow) {
return window.frameElement.radWindow;
}
return null;
}
// Fires when the changes are saved
function onClientClose(arg) {
// Pass the arguments from the dialog to the callback function on the main page.
getRadWindow().close(arg);
}
</script>
</telerik:RadCodeBlock>
Código de niño detrás
protected void ChildSave_Click(object sender, EventArgs e)
{
ClientScriptManager cs = Page.ClientScript;
cs.RegisterStartupScript(typeof(Page), "CloseScript_" + UniqueID,
"onClientClose(''1'');", true); // Return value 1 to parent
}