2016-05-27 5 views
-1

Wenn ich auf eine Schaltfläche klicke, sollte es Alternative X und O nehmen. aber es dauert nur X aber nicht O warum?Alternative Drehung während des Klickens der Taste?

Ich habe wiederum als boolesche Variable und umgekehrtes Symbol für die Einnahme von Alternativen verwendet.

Button b = (Button)sender; 
if (turn) 
{ 
    b.Text = "X"; 
} 
else 
{ 
    b.Text = "O"; 
} 
turn = !turn; 
+2

Wo ist 'Wende 'erklärt werden? Sie müssen den vollständigen Code für Ihre Frage angeben. – gmiley

+0

Ich erklärte, zuerst als eine boolesche Variable drehen –

+2

Wenn 'Turn' in Sitzung oder etwas anderes beibehalten wird, wird es zurückgesetzt, da Webseiten statuslos sind. – Crowcoder

Antwort

1

Ich glaube, du bist für etwas eine lange diese Zeilen suchen:

protected void btnExample_Click(object sender, EventArgs e) 
{ 
    var button = (Button)sender; 
    if(Session["Turn"] == null) 
     Session.Add("Turn", true); 

    var turn = (bool)Session["Turn"]; 
    if(turn) 
    { 
     Session["Turn"] = false; 
     button.Text = "X"; 
    } 

    else 
    { 
     Session["Turn"] = true; 
     button.Text = "O"; 
    } 
} 

Sie sind im Wesentlichen mit der Session eine globale Verwendung, die Probleme und ungerade Testfälle einführen können. Zumal es kurzzeitig ausläuft, aber das würde funktionieren. Mit mehr Anforderungen kann eine bessere Antwort folgen, jedoch erhalten Sie die Idee des Codes und warum er über einen längeren Zeitraum verfolgt.

+0

Es hat funktioniert. Danke vielmals. –

0

Ich bin mir nicht klar, warum Sie eine Variable hier verwenden - es sieht aus wie Sie gerade auf den Button Text zwischen zwei Werten Makel ... Wenn ja, warum nicht:

Button b = (Button)sender; 
if (b.Text = "0") 
{ 
    b.Text = "X"; 
} 
else 
{ 
    b.Text = "O"; 
} 

oder wenn Sie einen ‚turn‘ Variable verwenden müssen, dann müssen Sie es initialisieren, basierend auf, was auch immer der entscheidende Faktor sein kann - ab:

if (b.Text = "X") /*or whatever the determining factor is -- maybe you need to do a lookup here instead -- request.querysting("turn"), viewstate("turn"), etc.*/ 
{ 
    turn = 1; 
} 
else 
{ 
    turn = 0; 
} 

dann können Sie auf die Schaltfläche Text ändern:

Button b = (Button)sender; 
if (turn) 
{ 
    b.Text = "X"; 
} 
else 
{ 
    b.Text = "O"; 
} 

Und hier dann - wenn Sie den neuen Wert von 'turn' sind Speichern irgendwo ...

viewstate("turn") = !turn; 

(oder wo auch immer Sie speichern es ...)

Verwandte Themen