2010-03-16 3 views
17

Mi piacerebbe utilizzare un modalpopupextender nella mia pagina asp.net per mostrare un modulo secondario. Ma deve solo mostrare su condizioni specifiche. Tali condizioni sono determinate in un pezzo di codice javascript.Usa ModalPopupExtender senza dover impostare TargetControlID?

Quindi, cosa più importante, il popup modale non deve essere visualizzato con un clic del pulsante. Tuttavia, se lascio la proprietà TargetControlID vuota ottengo la seguente eccezione:

Il TargetControlID di 'ModalPopupExtender1' non è valido. Il valore non può essere nullo o vuoto. Descrizione: si è verificata un'eccezione non gestita durante l'esecuzione della richiesta Web corrente. Si prega di rivedere la traccia dello stack per ulteriori informazioni sull'errore e sulla sua origine nel codice.

Dettagli eccezione: System.InvalidOperationException: La TargetControlID di 'ModalPopupExtender1' è non è valido. Il valore non può essere nullo o vuoto.

Ho solo il TargetControlID a un pulsante nascosto o c'è anche un'opzione più decente?

+0

è stato utilizzato il HiddenField o il controllo Button come l'ID di controllo di destinazione. Hai riscontrato difficoltà nel disporre di hiddenfield come targetcontrolId perché ora sono – Deeptechtons

+1

@Deeptechtons, non utilizzare HiddenField. Usa un controllo Button, ma nascondilo con css (style = "display: none;") come menzionato da Mike nella sua risposta. –

+0

hai perfettamente ragione. Il pulsante ha risolto il mio problema mi chiedo cosa c'è di sbagliato nell'usare campi nascosti – Deeptechtons

risposta

19

Impostazione di TargetControlID su un pulsante nascosto (visualizzazione: nessuno;) è il modo migliore per quanto ne so.

+0

Per prima cosa ho provato ad aggiungere '', ma non ha funzionato. '' è la chiave, come indica questa risposta. – user1325179

10

TargetControlID può anche essere impostato su un tipo HiddenField. In questo modo non hai nemmeno bisogno di un pulsante

0

Creta un pulsante e impostarla come TargetControlID e dare style = "display:none"

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="Panel1" TargetControlID="btnPopup" 
     CancelControlID="btnClose" BackgroundCssClass="modalBackground" OkControlID="btnClose"></asp:ModalPopupExtender> 

<asp:Button ID="btnPopup" runat="server" Text="PopUp" style = "display:none" />