Estoy tratando de abrir una ventana emergente llamando a una función de JavaScript en CodeBehind (vb.net) en un evento de clic de botón.
La idea es que haga clic en el botón, el evento de clic en el botón hace un montón de cosas, luego activa la función javascript para abrir la ventana emergente.
JavaScript:
function openSync() { var companyId = $("#<%= txtCompanyID.ClientID%>").val(); $find("<%= RadWindowManager1.ClientID%>").open("SyncDatabases.aspx?CompanyID=" + encodeURIComponent(companyId), "winSyncProcess"); } Puedo llamar a la función openSync en CodeBehind usando:
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "open", "openSync();", True) Al intentar esto, obtengo un TypeError: Cannot read properties of null (reading 'open') .
PERO, si asigno la propiedad OnClientClick en el botón mismo para
OnClientClick="openSync(); return false;"el Javascript funciona bien, y la ventana emergente aparece como debería, pero al hacerlo ignora el evento de clic del botón CodeBehind y no hace las cosas que se supone que debe hacer.
Estoy usando un RadWindowManger:
<telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true"> <Windows> <ic:PopupWindow ID="winSyncProcess" runat="server" Width="800px" Height="600px" OnClientClose="OnSyncProcessClose"></ic:PopupWindow> </Windows> </telerik:RadWindowManager>Terminé usando ScriptManager.RegisterStartupScript(Me, Me.GetType(), "setTimeout(function () { openSync(); }, 100);", openSync, True) y eso resolvió el problema.