2017-04-05 5 views
1

Ich habe einen Code und ein Array innerhalb wie diese:Array hält sich nach Form Zurücksetzen einreichen

using System; 

public partial class bug : System.Web.UI.Page 
{ 

double[] Score = new double[10]; 
protected void Page_Load(object sender, EventArgs e) 
{ 

load the form with questions from database (but show only one) 
} 
protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
{ 
    when this clicked, evaluate the answer from TextBox1 and write the score to Score[questionnumber]. 
} 
protected void ImageButton2_Click(object sender, ImageClickEventArgs e) 
{ 
    go to the question of the clicked Hyperlink's number. 
} 

} 

Also, was passiert ist, ich öffne diese Seite, ich sehe es erste Frage, habe ich meine Antwort und sende es, dann gibt es die Punktzahl meiner ersten Frage zurück, danach klicke ich auf den Hyperlink der 2. Frage, und das Formular bringt mich zu meiner zweiten Frage, hier ist das Problem passiert, ich weiß nicht warum, aber das Array (Score-Array) wird hier zurückgesetzt. Wenn ich also meine Antwort für die zweite Frage einreiche, wird die Antwort auf Score [0] gesetzt, anstatt sie in den Index der Nummer der Frage zu stellen. vielleicht re-initialisiert es sich deswegen wieder. Also, was sollte ich tun, damit es nicht passiert, dass es zurückgesetzt wird? Bitte helfen Sie, ich brauche es wirklich. Hier

Antwort

1

ist die Antwort, die ich endlich gefunden:

if (!IsPostBack) 
    { 

     int sum = new deney().Database(); 
     Score = new double[sum]; 
     Session["myScore"] = Score; 
    } 

    Score = (double[])Session["myScore"]; 

Grundsätzlich setzt die Partitur Array in die Sitzung, und es immer wieder jede Form einreichen. Dank Lasse v. Karlsen hat er mir diese Antwort in der Chat-Plattform gegeben. Ich glaube, wenn die Chat-Option nicht so viel Ansehen erfordert, werden wir nicht jeden Tag so viele offene Fragen sehen, und Stackoverflow wäre auf diese Weise besser, denke ich. Eine Million Danke an alle, vor allem v Lasse. Karlsen

Lasse v. Karlsen original answer on Chat Platform

+0

Auch wenn für eine Woche, ich diese Option versucht haben, fand ich heraus, dass diese Möglichkeit, dieses Problem zu lösen, meine Website sehr langsam gemacht. Es gab nur 32 Elemente in der Anordnung, und ungefähr 8-10 Leute benutzten die Web site zur gleichen Zeit, ich denke, dass das am Ende keine gute Lösung ist. Daher wechselte ich zur Datenbankoption, fügte nun alle Punkte in der Datenbank hinzu, sammelte sie dann alle zusammen und erhielt das Endergebnis. Der zweite Weg brachte mir auch bei, IF-Anweisungen in mysql-Abfragen zu verwenden, die großartig sind. Ich bin froh, dass ich diesen Wechsel gemacht habe, es ist wirklich erstaunlich, jeden Tag neue Dinge zu lernen :) –

Verwandte Themen