Étant nouveau dans le domaine de l'ASP.NET, j'ai eu des difficultés à construire mon propre programme Whack-a-mole. Je pense que mon problème vient de l'utilisation de boutons qui, à eux seuls, envoient des messages au serveur, rendant le logiciel inutilisable. Les apparences sont en place, faisant apparaître de nouveaux boutons dans la grille, à différents endroits au hasard. Cependant, lorsqu'on appuie sur un bouton, le score ne change pas (ce qui me semble étrange).
Ce qui n'est pas si étrange, c'est que le bouton ne fonctionne pas puisqu'il renvoie le message au serveur - ce qui recharge le panneau de mise à jour. Je pense que je devrais utiliser un contrôleur différent, comme la CheckBox, et le styliser en utilisant le CSS (ce qui n'est pas un problème). Est-ce la bonne façon de procéder, ou dois-je plutôt utiliser JavaScript AJAX ?
Note à soi-même : Cette technique ne devrait pas être utilisée dans une application publique car elle met trop de pression indésirable sur le serveur web. A n'utiliser qu'en test et en apprentissage !
Merci de m'avoir écouté !
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master"
AutoEventWireup="true" CodeFile="Whack-a-mole.aspx.cs"
Inherits="Whack_a_mole" %>
<asp:Content ID="Content" ContentPlaceHolderID="cphContent" runat="server">
<h1>Whack-a-Mole</h1>
<asp:ScriptManager ID="smgrTime" runat="server" />
<asp:Timer ID="Timer" OnTick="Timer_Tick" runat="server" Interval="2000" />
<asp:UpdatePanel ID="updpButtons" runat="server" UpdateMode="Always">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer" />
</Triggers>
<ContentTemplate>
<asp:Label ID="lblPoints" runat="server" Text="Score: 0p" />
<asp:Button ID="Button1" runat="server" BorderStyle="Outset"
BorderWidth="3px" CssClass="mole" Text="Mole"
onclick="Button1_Click" />
<asp:Button ID="Button2" runat="server" BorderStyle="Outset"
BorderWidth="3px" CssClass="mole" Text="Mole"
onclick="Button2_Click" />
<asp:Button ID="Button3" runat="server" BorderStyle="Outset"
BorderWidth="3px" CssClass="mole" Text="Mole"
onclick="Button3_Click" />
<!-- continues the same way down to Button25 -->
<asp:Button ID="Button25" runat="server" BorderStyle="Outset"
BorderWidth="3px" CssClass="mole" Text="Mole"
onclick="Button25_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
Extrait du fichier Code :
// points vairable
private int points;
// Property for points
public int Points
{
get { return points; }
set { points = value; }
}
protected void Timer_Tick(object sender, EventArgs e)
{
Random random = new Random();
int visible;
foreach (Button button in buttonList)
{
visible = random.Next(1, 10);
if (visible == 3)
button.Visible = true;
else
button.Visible = false;
}
lblPoints.Text = "Score: " + Points + " p";
}
protected void Button1_Click(object sender, EventArgs e)
{
Points = Points + 1;
}