全局变量值在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;
    }
}
}

请帮帮我!

全局变量值在asp.net的页面回发时不持久

如果您希望在回发之间保留一些值,请使用SessionViewState

Session["qno"] = (int)row["qno"];

如何获取Session的值

int qno = 0;
if(Session["qno"] != null)
   qno = int.TryParse(Session["qno"].ToString(), out qno);