2010-07-13 12 views

risposta

8

di fare un postback tramite JavaScript è possibile chiamare il seguente lato server per creare il codice JavaScript per voi:

string postBackJavascript = Page.GetPostBackEventReference(yourControl); 

Ciò restituirà il codice JavaScript __doPostBack come una stringa, e sarà necessario posto su la tua pagina attaccato a qualcosa oppure è possibile chiamare il __doPostBack direttamente sul proprio con:

__doPostBack(yourControlId,''); 

se si sta facendo da soli e che non utilizzano Page.GetPostBackEventReference quindi assicurarsi di ottenere il ClientID per il controllo che ha attivato la validazione, come:

__doPostBack('<%= yourControl.ClientID %>',''); 

EDIT: dopo aver riletto la tua domanda non hai detto che volevi per attivare il postback sulla base di un controllo ASP.NET, si potrebbe anche non utilizzare qualsiasi ASP.NET controlla quindi in questo caso, se si vuole fare solo un postback alla vaniglia che si può fare:

document.forms[0].submit(); 
+0

bene da quando hai chiesto .. sto cercando di inviare utilizzando un pulsante ASP.Net. in questo momento non riesco a ottenere il pulsante per non presenta. Ho il OnClientClick = "validate(); return false;" ma non sembra funzionare. Qualche idea?? – bill

+0

@ Bill che dovrebbe funzionare ... provare a rimuovere la 'validate()' e vedere se solo 'return false;' opere. La mia impressione è la vostra facendo qualcosa in 'validate()' che sta causando che behavious perché sembra corretto. Forse inizia un'altra domanda e includi il tuo codice 'validate()'. – Kelsey

+0

Potresti avere problemi ad annullare il comportamento del pulsante quando gli eventi sono impilati. Quindi il postback originale che era originariamente lì viene licenziato prima del tuo javascript. Quindi è necessario cancellare l'evento originale prima di metterlo in cima. In caso contrario, il pulsante verrà sempre inviato. – Simon

3

Se si desidera postback, è possibile utilizzare __doPostBack() che ASP.NET ha inserito nello <form>. Dai un'occhiata a questo link. Se si desidera inviare un'altra forma basta chiamare .submit() sull'elemento modulo.

3

dovrebbe essere semplice come

document.forms[0].submit(); 

Fornire d, hai solo un modulo sulla pagina, oppure devi usare il nome del modulo invece dell'indice 0.

Problemi correlati