Domanda

Voglio chiudere un popup Shadowbox quando l'utente fa clic su un pulsante. Il pop-up sta mostrando una pagina separata in un iframe. Questo funziona bene con un evento client-side sul controllo pulsante, per esempio Annulla.

OnClientClick="javascript:parent.Shadowbox.close();"

Il pulsante Ok, tuttavia, ha un evento lato server, in quanto i dati devono essere salvati. Quando ho definire sia un OnClick e il gestore OnClientClick dall'alto, l'IFrame è chiuso e il gestore di eventi sul lato server non si attiva mai.

Ho provato a rimuovere il gestore di eventi OnClientClick dal markup e di utilizzare il ClientScriptManager per raggiungere questo obiettivo, come in

Page.ClientScript.RegisterStartupScript(this.GetType(),
  "Close", "parent.Shadowbox.close();", true);

A quanto pare perché i pulsanti sono in un UpdatePanel, lo script non ottenere registrato, e non appare nel flusso Reponse. L'iPanel rimane aperto.

Come posso fare questo?

È stato utile?

Soluzione

Quando si sta utilizzando i comandi MS AJAX, è necessario registrarsi i propri script con il ScriptManager, non ClientScript.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top