web-dev-qa-db-fra.com

Comment appeler un événement asp: Button OnClick en utilisant JavaScript?

J'ai une question, j'ai un bouton comme ci-dessous:

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

J'ai ensuite un bouton HTML comme ci-dessous:

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

J'ai le javascript ci-dessous:

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

Ma question est maintenant, comment puis-je appeler l'asp: Button OnClick à partir du bouton HTML? J'ai lu que vous pouvez le faire en appelant à partir de JavaScript par Id, mais cela ne fonctionne pas.

Toute aide sera vraiment appréciée.

Merci

14
jorame

Ensemble style= "display:none;". En définissant visible=false, il ne rendra pas le bouton dans le navigateur. Ainsi, le script côté client ne s'exécutera pas.

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

le balisage html doit être

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

Remplacez javascript par

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

Si vous êtes prêt à utiliser jQuery:

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

De plus, si vous utilisez .NET 4 ou mieux, vous pouvez faire le ClientIDMode == static et simplifiez le code:

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

Référence: article MSDN pour Control.ClientIDMode

6
Glenn Ferrie