Domanda

Sfondo:

Sto usando jQuery blockui 2.31 da jquery 1.3.2, su ASP.NET 2.0.

Sto utilizzando la finestra di dialogo per mostrare un DIV (normalmente) nascosto come una sorta di finestra di dialogo modale pop-up, con controlli lato server ASP.NET in esso (per semplicità, un asp: Button). Non c'è AJAX, o no garantiti per essere qualsiasi.

Una delle cose che jquery blockui fa, se si passa alcuni elementi HTML -. È rimuoverà il controllo dal suo posto nella pagina, e aggiungerlo alla corpo

ASP.NET 2.0 sembra voler controlli che Tornare in essere nel forma si possono trovare con $ (# aspnetForm). jquery blockui semplicemente spostato nel corpo , in modo che il postback non si attiva, .

Il metodo è un metodo di istanza e probabilmente non funzionerà bene come statico (riferimenti registrati nel controlli utente e pagina ...)

Ho fatto qualche ricerca:

Ho modificato jquery blockui da aggiungere alla forma (e lottato con il selettore per rimuovere il blocco), ma Borks IE6 e IE7 - la sovrapposizione inizia la forma e l'intera finestra di dialogo appare fuori centro. Nascondere la sovrapposizione non è un'opzione, e mi sono davvero odio scherzi con lo script IE-specifici css e IE-specifici.

Ho provato aggiungendo alcuni strati al corpo e alcuni alla forma, ma gli strati corpo indica sempre sulla parte superiore degli strati di forma (così lo strato opaco che blocca dell'ingresso viene bloccare l'ingresso del div sto cercando di spettacolo).

sto pensando la soluzione è di avere la chiamata div un'ancora fittizio nascosta per eseguire postback del pulsante originale. SonTek suggerito questo nella sua risposta a una domanda relativa.

La mia domanda effettiva:

Sono sulla strada giusta con il falso trucco postback? Suppongo che se sto contando su jQuery per la funzionalità finestra di dialogo modale non dovrei essere preoccupato per fallback.

O, dovrei continuare a muck circa con lo stile della somma modulo?

È stato utile?

Soluzione

Sei praticamente bloccato mettendo i tag di nuovo all'interno del tag form se si vuole un comportamento normale asp.net come ad esempio gli eventi di sparare.

Detto questo, se sei bloccato sull'utilizzo del modali jQuery, non credo che innescare il postback è una brutta cosa. Come lei ha ricordato la questione legata / correlati, è possibile ottenere il GetPostBackEventReference di riferimento postback nel code-behind e passare il controllo di chi è evento che si desidera al fuoco, come ad esempio:

//assuming your button is btnMyButton and
Page.ClientScript.GetPostBackEventReference(btnMyButton, null);

Si potrebbe collegare questa chiamata javascript per qualsiasi altro tasto, tra cui il pulsante che si sta muovendo intorno al di fuori del tag form. Ciò essenzialmente wireup il postback e sollevare gli eventi che di controllo, come al solito.

Non è la soluzione più elegante, ma penso che tu sia sulla strada giusta con esso, se è necessario utilizzare jQuery modale.

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