2017-06-14 4 views
1

Je travaille avec HTML fourni par collègue en .aspx et j'ai besoin de programmer en .aspx.cs (C#) la fonctionnalité du bouton qu'il a créé en utilisant HTML. Le code que je traite est comme suit:Code C# derrière pour l'événement Click Button, ASP.NET

</div> 
      <button style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue">Ship</button> 
      <button style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue">Rate</button> 

    </div> 

Je suis nouveau à HTML, mais dans la recherche des solutions aux questions similaires que je vois souvent le code HTML pour un bouton fonctionnel ressemblant plus à

<button type="submit" runat="server" id="btnLogin" class="button" onclick="btnLogin_Click();"> 

et parfois avec un

<asp: 

au début. J'ai essayé simplement d'ajouter les champs runat et onclick au code HTML qui correspond à une méthode C# dans le code aspx.cs derrière mais je n'ai pas réussi à faire que le clic sur le bouton déclenche réellement la méthode dans le code derrière. J'ai supposé que si j'ajoutais la méthode avec le nom qui suit onclick au code de C# aspx.cs alors il exécuterait simplement ceci au clic du bouton mais je me trompe clairement. Puis-je programmer la fonctionnalité du bouton dans le code sans modifier le code HTML qui m'est fourni? Ou dois-je modifier le code HTML en premier et si oui, comment?

+0

Ceux qui sont préfixés par 'asp:' sont des formulaires Web contrôles. Vous pouvez lire tout à leur sujet [dans la documentation] (https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button (v = vs.110) .aspx). – mason

Répondre

2

Vous pourriez probablement obtenir loin avec l'ajout de l'attribut runat="server" à vos boutons, mais je l'ai jamais essayé et franchement, en utilisant Des contrôles Web appropriés seraient la meilleure façon de procéder.

En les remplaçant ne devrait pas du tout changer l'apparence de la page. Il suffit d'ajouter CssClass="xxx" pour appliquer le css s'il y en a, sinon ils sont rendus aux éléments html standard de toute façon.

Votre balisage devrait ressembler à ceci:

<asp:Button runat="server" id="btnLogin" Text="Log In" OnClick="btnLogin_Click" /> 

Le gestionnaire d'événements correspondant à votre code ressemblerait à ceci:

protected void btnLogin_Click(object sender, EventArgs e) 
{ 
    // Here's where you do stuff. 
} 
0

vous devez remplacer le

onclick="btnLogin_Click();" 

avec

onclick="btnLogin_Click" 

parce que la propriété onClick des boutons asp.net doivent contenir le nom de la fonction qu'il appelle dans le fichier et aspx.cs pas l'appel réel.

+0

j'ai mis à jour ma réponse – Plargato

0

Ma suggestion serait de changer le contrôle HTML en <asp:Button /> et de faire en sorte que le gestionnaire d'événements soit branché par ASP.NET. Syntaxe ressemblerait dessous

<asp:Button ID="Test" runat="server" Text="Button" OnClick="Test_Click" /> 
0

Si vous utilisez un outil comme Visual Studio/EXPRES ouvrir la page concernée (la page ASPX). À partir de la barre d'outils, faites glisser un bouton sur la page.

Si vous double-cliquez sur le bouton en mode Création, le gestionnaire d'événements est automatiquement créé dans le code.

Le contrôle de bouton possède deux propriétés OnClick et OnClientClick. Utilisez OnClientClick pour déclencher tout JavaScript sur la page.

Hope it helps