2013-03-05 24 views
12

Ho una domanda, ho un pulsante mi piace qui sotto:Come chiamare un asp: pulsante evento OnClick utilizzando JavaScript?

<asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" Visible="false" /> 

poi ho pulsante HTML come come di seguito:

<button id="btnsave" onclick="fncsave">Save</button> 

ho il javascript di seguito:

<script type="text/javascript"> 
    function fncsave() 
    { 
     document.getElementById('<%= savebtn.OnClick %>').click() 
    } 
</script> 

La mia domanda ora è, come posso chiamare l'asp: Button OnClick dal pulsante HTML? Ho letto che puoi farlo chiamando da JavaScript da ID ma non funziona.

Qualsiasi aiuto sarà davvero apprezzato.

Grazie

+0

potrebbe essere una vittima ... @Mortalus E 'fresco per chiamare il metodo __doPostBack? Non l'ho mai fatto in pratica. –

+0

Non sono sicuro di cosa intendi per "cool" quando si fa riferimento a un metodo JavaScript :) ma sì, puoi usarlo. Se riesci ad emulare un clic del pulsante del cliente reale come una delle risposte più semplici, perché a volte potresti voler eseguire un post parziale e quindi la risposta nella domanda che ho postato non funzionerà. – Mortalus

risposta

22

Set style= "display:none;". Impostando visible=false, non verrà visualizzato il pulsante di rendering nel browser. Pertanto, lo script lato client non verrà eseguito.

<asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" style="display:none" /> 

Tag HTML dovrebbe essere

<button id="btnsave" onclick="fncsave()">Save</button> 

Change javascript per

<script type="text/javascript"> 
    function fncsave() 
    { 
     document.getElementById('<%= savebtn.ClientID %>').click(); 
    } 
</script> 
+0

L'onclick appropriato sarebbe 'onclick =" fncsave(); restituisce false; "' –

+0

Life saver. Se uso 'return false;' impedirà un PostBack? – SearchForKnowledge

+0

Sì impedisce – Sunny

6

Se siete aperti a utilizzando jQuery:

<script type="text/javascript"> 
function fncsave() 
{ 
    $('#<%= savebtn.ClientID %>').click(); 
} 
</script> 

Inoltre, se si utilizza .NET 4 o superiore è possibile creare il ClientIDMode == static e semplificare il codice:

<script type="text/javascript"> 
function fncsave() 
{ 
    $("#savebtn").click(); 
} 
</script> 

Riferimento: MSDN Article for Control.ClientIDMode

+0

grazie per la vostra risposta – jorame

+0

il mio piacere. Domanda. perché non usare solo il pulsante ASP.NET? –

+0

Sto usando alcuni CSS con jQuery e ASP.NET mi sta dando un brutto momento per modellarlo o rendere il mio lavoro di progettazione. – jorame

Problemi correlati