全局变量值在asp.net的页面回发时不持久
本文关键字:不持久 变量值 asp net 全局 | 更新日期: 2023-09-27 18:14:15
我正在实现一个测验门户类型的web应用程序。
第一个问题是从数据库中获取fine。点击next按钮,下一个问题正在抓取。现在再次点击下一个或上一个按钮什么也没有发生!
使用的概念 -创建一个全局变量,该变量将等于当前的问题no。从我的问题表中,增加/减少下一个/上一个点击的变量
为什么这个方法不工作!我应该在Page_Load或其他地方改变什么代码?
注意:
1。使用的已断开连接的模型
2。倒计时计时器在回发时工作正常,没有问题。
附加图片 .
1。这里的问题表设计
2。在默认页面(ques1)和单击下一步按钮(ques2)时Q1。和Q2。组合图像
public partial class quiz : System.Web.UI.Page
{
int qno=0; //global variable
DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["sname"] == null)
{
Response.Redirect("home.aspx");
}
string qpname = Request.QueryString["qpname"]; //question paper table name
//**some countdown timer code here**
SqlConnection conn = null;
conn = new SqlConnection();
conn.ConnectionString = "Data Source=xyz; Initial Catalog=xzyyzz;Integrated Security=True;";
String queryString = "select * from " + qpname + "";
SqlCommand cmd = new SqlCommand(queryString, conn);
SqlDataAdapter ad = new SqlDataAdapter(queryString, conn);
dt = new DataTable();
ad.Fill(dt);
foreach (DataRow row in dt.Rows)
{
Label6.Text = row["marks"].ToString(); //for marks of current ques.
Label7.Text = row["ques"].ToString(); //for ques.
qno = (int)row["qno"]; //ques no.
qno = qno + 1; //
break;
}
}
protected void Timer1_Tick(object sender, EventArgs e)
{
//some timer code here
}
public class CountDownTimer
{
//some timer code here
}
protected void submit_Click(object sender, EventArgs e)
{
Response.Redirect("student.aspx"); //redirect on submit
}
protected void prev_Click(object sender, EventArgs e) //prev button
{
display_ques(-1);
}
protected void next_Click(object sender, EventArgs e) //next button
{
display_ques(1);
}
public void display_ques(int direction)
{
DataRow[] result = dt.Select(" qno = " +qno+ ""); //for current ques no.
foreach (DataRow row in result)
{
Label6.Text = row["marks"].ToString();
Label7.Text = row["ques"].ToString();
if (direction == 1)
qno=qno+1;
else
qno=qno-1;
break;
}
}
}
请帮帮我!
如果您希望在回发之间保留一些值,请使用Session
或ViewState
。
Session["qno"] = (int)row["qno"];
如何获取Session的值
int qno = 0;
if(Session["qno"] != null)
qno = int.TryParse(Session["qno"].ToString(), out qno);