2011-08-25 11 views
19

Sto creando un'applicazione utilizzando ASP.Net, in cui ho un pulsante HTML nella pagina aspx.evento lato server di chiamata dal controllo pulsante html

<input type="submit" id="btnSubmit" runat="server" 
    style="background-image:url(App_Themes/default/Images/quiz_class/btn_submit.jpg); 
    width:80px; height:29px;" onserverclick="btnSubmit_ServerClick" /> 

Ma quando clicco sul pulsante di allora non chiamare l'evento btnSubmit_ServerClick sulla aspx.cs pagina.

Non voglio usare il tasto di controllo asp.

Si prega di aiutare ..

+0

Sooo ... Sono passati 3 anni. Hai mai capito? Accetta una risposta! (Anche se devi prima crearlo) – Cullub

risposta

0

Si prega di seguire questo tutorial: http://decoding.wordpress.com/2008/11/14/aspnet-how-to-call-a-server-side-method-from-client-side-javascript/

Su un sidenote: ASP.NET genera un lato client funzione javascript che è possibile chiamare dalle proprie funzioni per eseguire il postback che si desidera.

- Maggiori informazioni sulla dirottare l'evento di postback:

2

Il modo più semplice per raggiungere questo obiettivo è quello di sovrascrivere il metodo RaisePostBackEvent.

<input type="button" ID="btnRaisePostBack" runat="server" onclick="raisePostBack();" ... /> 

E nel tuo JavaScript:

raisePostBack = function(){ 
    __doPostBack("<%=btnRaisePostBack.ClientID%>", ""); 
} 

E nel codice:

protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument) 
{ 
    //call the RaisePostBack event 
    base.RaisePostBackEvent(source, eventArgument); 

    if (source == btnRaisePostBack) 
    { 
     //do some logic 
    } 
} 
+0

ho provato questo codice, un postback viene attivato ma la funzione 'protected override void RaisePostBackEvent' non viene eseguita. come risolvere questo? – Vijayaraghavan

32

Se siete OK con la conversione del tasto di ingresso a un controllo lato server specificando runat="server", e si utilizza asp.net, un'opzione potrebbe utilizzare la proprietà HtmlButton.OnServerClick.

<input id="foo "runat="server" type="button" onserverclick="foo_OnClick" /> 

Questo dovrebbe funzionare e chiamare foo_OnClick nel codice lato server. Si noti inoltre che, in base alla documentazione Microsoft collegata in precedenza, si dovrebbe essere in grado di utilizzare il tag HTML 4.0.

+0

questa è sicuramente la risposta che funziona bene con me –

+0

Come si dichiara 'foo_OnClick'? – Cullub

+0

Ottenuto: '' La tua roba C# deve essere qui. – Cullub

4

Nella pagina aspx definire l'elemento HTML Button con i soliti sospetti: runat, classe, titolo, ecc

Se questo elemento è parte di un controllo associato di dati (es: visualizzazione a griglia, ecc) è potrebbe voler usare CommandName e possibilmente CommandArgument come attributi. Aggiungi il contenuto del tuo pulsante e il tag di chiusura.

<button id="cmdAction" 
    runat="server" onserverclick="cmdAction_Click()" 
    class="Button Styles" 
    title="Does something on the server" 
    <!-- for databound controls --> 
    CommandName="cmdname"> 
    CommandArgument="args..." 
    > 
    <!-- content --> 
    <span class="ui-icon ..."></span> 
    <span class="push">Click Me</span> 
</button> 

sul codice dietro la pagina sarebbe l'elemento di chiamare il gestore che sarebbe stato definito come funzione di evento ID_Click dell'elemento.

protected void cmdAction_Click(object sender, EventArgs e) 
{ 
: do something. 
} 

Non ci sono altre soluzioni, come nell'uso di controlli personalizzati, ecc Inoltre nota che sto usando questo live su progetti in VS2K8.

Sperando che questo aiuti. Divertiti!

0

basta usare questo alla fine del pulsante evento click

protected void btnAddButton_Click(object sender, EventArgs e) 
{ 
    ... save data routin 
    Response.Redirect(Request.Url.AbsoluteUri); 
} 
Problemi correlati