2017-04-05 4 views
1

J'ai un code et un tableau à l'intérieur comme celui-ci:tableau conserve lui-même remise à zéro après envoi du formulaire

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. 
} 

} 

Alors, qu'est-ce qui se passe est, j'ouvre ce site, je vois la première question, je mets ma réponse et soumettez-le, puis il renvoie le score de ma première question, après que je clique sur l'hyperlien de la 2ème question, et la forme me conduit à ma 2ème question, voici le problème qui se produit, je ne sais pas pourquoi mais le tableau est réinstallé ici, donc quand je soumets ma réponse pour la 2ème question, il met la réponse à Score [0] au lieu de la mettre à l'index du numéro du numéro de la question. peut-être que ça se réinitialise à nouveau à cause de ça. Alors, que dois-je faire pour ne pas continuer à être réinstallé? S'il vous plaît, aidez, j'en ai vraiment besoin.

Répondre

1

Voici la réponse que je trouve enfin:

if (!IsPostBack) 
    { 

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

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

Fondamentalement, placer le tableau de score dans la session, et de le faire revenir toute forme de soumission. Merci à Lasse v. Karlsen, il m'a fourni cette réponse dans la plate-forme de discussion. Je crois que si l'option de discussion n'exige pas autant de réputation, nous ne verrons pas autant de questions ouvertes tous les jours, et Stackoverflow serait mieux comme ça je suppose. Un million Merci à tous, en particulier Lasse c. Karlsen

Lasse v. Karlsen original answer on Chat Platform

+0

Même si pendant une semaine, je l'ai essayé cette option, je trouve que cette façon de résoudre ce problème a mon site très lent. Il y avait seulement 32 articles dans le tableau, et environ 8-10 personnes utilisaient le site en même temps, je suppose que ce n'est pas une bonne solution à la fin. Par conséquent, je suis passé à l'option Base de données, en ajoutant maintenant tous les scores dans la base de données, puis en les collectant tous ensemble et en obtenant le résultat final. La seconde façon m'a aussi appris à utiliser les instructions IF dans les requêtes mysql, qui sont géniales. Je suis content d'avoir fait ce changement, c'est vraiment génial d'apprendre de nouvelles choses tous les jours :) –