ASP.Net fornisce un modo per voi per costruire una chiamata per eseguire un postback da javascript.
Il Metodo ClientScriptManager.GetPostBackEventReference costruirà il codice è necessario utilizzare in javascript per eseguire un postback da un controllo particolare http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.getpostbackeventreference.aspx
Di seguito è riportato un esempio (in VB.Net). Nel codice sottostante sto creando la mia funzione javascript. Il codice ASP.Net inserirà il codice javascript nella mia funzione per eseguire PostBack per il controllo "MyButton". Quando la pagina è stata creata, questa funzione javascript sarà disponibile.Quando il codice javascript effettua una chiamata a questa funzione javascript, eseguirà un PostBack, che simulerà l'azione che si verifica quando si fa clic sul pulsante "MyButton".
Dim csm As ClientScriptManager = Page.ClientScript
Dim sb As New StringBuilder
sb.AppendLine("function handleDoPostBack() {")
sb.AppendLine(csm.GetPostBackEventReference(MyButton, ""))
sb.AppendLine("}")
csm.RegisterClientScriptBlock(Me.Page.GetType, "js_code__create_functions", sb.ToString, True)
Spero che sia quello che stai cercando.
UPDATE
Ecco un esempio di come si potrebbe chiamare la funzione JavaScript che è stato creato per voi sul lato server.
<input type="button" value="Click Me" onclick="handleDoPostBack();" />
Ho appena fatto un pulsante normale HTML (invece di utilizzare un pulsante di ASP.Net), perché non ho voglia di ottenere il concetto di un postback pulsante di confondersi con esso. Questo è semplicemente un pulsante HTML che non fa altro che ciò che si programma per farlo. Da quando ho aggiunto la funzione javascript alla chiamata su onclick, quando si preme il pulsante, verrà eseguito il PostBack. Quando si verifica questo PostBack, agirà come se si fosse fatto clic sul pulsante "MyButton"; quello sarebbe un bottone ASP.Net che hai da qualche parte sulla pagina. Dato che quel pulsante è un pulsante ASP.Net, potrebbe già fare un PostBack da solo, motivo per cui penso ci sia una certa confusione sul motivo per cui stai cercando di attivare un PostBack in modo programmatico.
è anche possibile chiamare la funzione JavaScript direttamente nel codice, in quanto tale ...
<script>
handleDoPostBack();
</script>
Questo accadrà non appena il codice la incontra. Oppure, se lo inserisci in un evento onload, verrà chiamato al termine del caricamento della pagina. Ma come ho detto nel mio commento, dovresti stare attento a questo perché potresti finire con un ciclo inifinito.
Leggendo alcuni dei tuoi commenti nelle altre risposte, il problema che stai cercando di risolvere sembra avere a che fare con i pannelli AJAX che stai utilizzando. Non sono familiare con quelli, quindi non sono sicuro del motivo per cui non funziona per te, e non so se l'attivazione del PostBack programmaticamente risolverà il tuo problema.
Tuttavia, se è necessario attivare un PostBack in modo programmatico, questo è il codice che è possibile utilizzare. Lo uso nei casi in cui non desidero che un pulsante sia presente sulla pagina, ma desidero che un'azione venga eseguita. Quando succede qualcos'altro sulla mia pagina, eseguo un codice javascript che si comporterà come se si fosse fatto clic su un pulsante - e posso gestirlo premendo sul lato server. Nella mia pagina ASP.Net, includo il pulsante, ma poi utilizzo CSS per nascondere all'utente la visualizzazione del pulsante. Quindi l'utente non vede il pulsante, ma il mio codice javascript può chiamare la mia funzione javacript che simulerà un clic di quel pulsante.
semplicemente non capisco perché usi __doPostBack in JavaScript se il pulsante fa comunque postback? – Alexan
Qual è il motivo alla base della scrittura del proprio script di postback per un controllo pulsante (che sta postando comunque come ha affermato Alex)? – Win
Vuoi eseguire un PostBack per il pulsante OnClick? Questo è licenziato automaticamente. Non è necessario aggiungere altro codice per questo. –