Je suis nouveau sur Asp.net et ma question peut ne pas être aussi professionnelle. J'utilise le design de Udemy.com dans mon projet de formulaires Web asp.net. Je mets l'en-tête et le pied de page de udemy
dans un masterpage
. Mais lorsque j'ajoute un bouton à l'un des m formulaires Web, l'événement de clic ne se déclenche pas.
<asp:Button ID="Button1" runat="server" onclick="Button1_Click1" Text="Button" />
protected void Button1_Click1(object sender, EventArgs e)
{
Page.Title = "Sample Text";
}
Pour résoudre ce problème, j'ai supprimé tous les scripts de mes pages. De plus, j'ai essayé de définir CausesValidation
sur False. Mais rien n'y fait… .. Pourriez-vous m'aider à résoudre ce problème?
J'ai ajouté l'événement OnClick à mon code. Mais je suis toujours confronté à ce problème.
Toutes les réponses précédentes sont correctes, sauf que vous "avez déjà ajouté" l'événement OnClick au fichier ". Aspx" . Je ne sais pas s'il s'agit de quelque chose dans le modèle que vous utilisez ou quelque part autre dans le code. Mais je vous recommanderais de vérifier les points suivants (d'après mon expérience d'être coincé dans des situations similaires):
Ceci est un exemple de code. Vous avez oublié "OnClick =" MyButton_Click "dans votre bouton.
aspx
<asp:Button ID="MyButton" **OnClick="MyButton_Click"** runat="server" />
code behind
protected void **MyButton_Click**(object sender, EventArgs e)
{
// Put code here over there chuhu
}
Quelques points que vous pouvez essayer ... Le code que vous avez posté (après la mise à jour) devrait fonctionner.
Breakpoints
pas d'étiquette ou toute autre modification de balise, mais si vous le souhaitez ... vous devez vérifier si le composant Title
a l'attribut runat="server"
et qu'il se trouve dans un panneau de mise à jour. Ajouter l'attribut CausesValidation = "false"
du bouton comme:
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" CausesValidation="false"></asp:Button>
Si vous assignez le gestionnaire de clics dans le code derrière, assurez-vous qu'il ne se trouve pas dans une vérification IsPostBack == false
void Page_Load (object oSender, EventArgs oEventArgs)
{
if (IsPostBack == false)
{
oButton += new EventHandler(oButton_Click); // does not work
}
oButton += new EventHandler(oButton_Click); // does work
}
OnClick="Button1_Click"
. Il vous faut ajouter un événement comme celui-ci
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
Essaye ça
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
Est-ce votre directive page ?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
Essayez de placer Button dans une balise de formulaire
comme
<form id="#" runat="Server">
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"></asp:Button>
</form>
Vérifiez et essayez de supprimer l'attribut "requis" sur un autre élément d'entrée. cela fonctionne dans mon cas… il m'a fallu un certain temps pour le découvrir.
Lisez ici cette question également ... même problème asp.net Button Un événement OnClick ne se déclenche pas
Veuillez tester l’exemple simple dans online aspdotnetfiddle .
Exemple de programme créé avec un seul bouton et un contrôle d’étiquette, lorsqu’il clique sur un bouton, un événement déclenchant sur un bouton, dans l’affectation de la valeur textuelle de l’étiquette.
Veuillez cocher le bouton est défini correctement dans votre fichier page.aspx.designer.cs.
quelque chose comme ci-dessous code:
protected global::System.Web.UI.WebControls.Button Button1;
Si vous avez deux boutons et deux résumés de validation, vous devez ajouter ValidationGroup = "Group2"
pour chaque résumé de validation, zone de texte et bouton.
Et pour l'autre, ajoutez: ValidationGroup="Group1"
, cela devrait alors fonctionner.
Directive de page comme ça
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
HTML
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
le code suivant doit être à l'intérieur du Default.aspx.cs
protected void Button1_Click(object sender, EventArgs e)
{
Page.Title = "Sample Text";
}
Je suppose que le problème est peut-être lié à la directive
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
ou bien vous n’auriez pas appelé la baliseasp: Buttonà l’intérieur du form tag
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
</form>
Ceci est un exemple de code. Vous avez oublié "OnClick =" MyButton_Click "dans votre bouton.
aspx
<asp:Button ID="MyButton" **OnClick="MyButton_Click"** runat="server" />
code derrière
protected void **MyButton_Click**(object sender, EventArgs e)
{
// Put code here
}
Ma réponse personnelle est, vous devez apprendre plus de choses dans Google
Quelques meilleurs tutoriels pour asp.net
http://www.w3schools.com/aspnet/default.asp
http://www.asp.net/web-pages/tutorials
- http://asp.net-tutorials.com/
http://quickstarts.asp.net/QuickStartv20/default.aspx et peut apprendre beaucoup de connaissances depuis site Web MSDN
Vous pouvez comprendre plus de contrôles asp.net et etc ....
Si le problème est lié au déclenchement de la validation et que votre bouton ne doit pas déclencher de validation, envisagez d'ajouter CausesValidation = "false" aux attributs de votre bouton.
Votre bouton devrait être comme ça
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/>
Pouvez-vous s'il vous plaît essayer ceci:
<asp:Button ID="Button1" runat="server" Text="Button" onClick="Button1_Click" />
Vous ne mentionnez pas le gestionnaire d'événements pour l'événement de clic de bouton.
j'espère que ça aide.
Dans mon cas, l'événement n'a pas été déclenché car j'ai ajouté le bouton au corps de la page maître et la balise <form>
était dans la balise <body>
.
J'ai résolu le problème en ajoutant le bouton à la balise <form>
$('body').append($(".ButtonsDiv"));
$('#form1').append($(".ButtonsDiv"));
Javascript peut échouer en silence sur votre page, entraînant l'abandon du traitement, ce qui empêche le déclenchement de l'événement click. Si je soupçonne que cela se produit, je le colle immédiatement sous la balise de script avant le débogage:
window.onerror = function (message, filename, linenumber) {
alert("JS error: " + message + " on line " + linenumber + " for " + filename);
}
Supprimer pour le code de production.