我需要一些帮助,在回发后保留一个数组。
在页面加载时,我创建一个包含三个随机数的数组,并将它们从最低到最高排序。然后,这些数字用于比较存储在生成数字位置的另一个字符串中的字符。
当点击提交按钮时,会重新生成数字并且验证失败,因为现在有一组新的数字。
这里是代码的一部分......我需要保留的数组是rannumInt。
int[] rannumInt = { 0, 0, 0 };
protected void page_load()
{
if (!IsPostBack)
{
int i, j;
if (rannumInt[0] == 0)
{
for (i = 0; i < 3; i++)
{
Random rannum = new Random();
rannumInt[i] = rannum.Next(1, 9);
if (i > 0)
{
for (j = 0; j < i; j++)
{
if (rannumInt[i] == rannumInt[j])
{
i--;
}
}
}
}
Array.Sort(rannumInt);
Label1.Text = Convert.ToString(rannumInt[0]);
TextBox1.Text = Convert.ToString(rannumInt[0]);
Label2.Text = Convert.ToString(rannumInt[1]);
TextBox2.Text = Convert.ToString(rannumInt[1]);
Label3.Text = Convert.ToString(rannumInt[2]);
TextBox3.Text = Convert.ToString(rannumInt[2]);
}
}
else
{
}
}
答案 0 :(得分:0)
您必须将rannumInt
存储在某处,例如Session或ViewState。然后当发生PostBack时,将ViewState转换回数组。
if (!Page.IsPostBack)
{
if (rannumInt[0] == 0)
{
Array.Sort(rannumInt);
Label1.Text = Convert.ToString(rannumInt[0]);
//save the array into the viewstate
ViewState["rannumInt"] = rannumInt;
}
}
else
{
//check if the viewstate exists
if (ViewState["rannumInt"] != null)
{
//convert it back to an int[]
rannumInt = ViewState["rannumInt"] as int[];
}
}
如果您希望多个网页和/或网页重新加载的数字相同,请使用Session