我正在实施一个测验门户类型的Web应用程序。
第一个问题是从db获取正常。 点击下一个按钮,下一个问题正在取得好处。现在再次点击 next或prev 按钮没有任何反应!
使用的概念 - 制作了一个全局变量,它将等于当前的问题编号。从我的问题表中,下一个/上一次点击增加/减少变量
为什么这种方法不起作用! 我应该在Page_Load或其他地方更改哪些代码?
注意:
1.使用了断开的模型
2.countdown计时器在回发时工作正常,没问题。
附加图片 ..
2.On默认页面(ques1)和点击下一步按钮(ques2) Q1. and Q2. combined image
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;
}
}
}
请帮帮我们!坚持这个..
答案 0 :(得分:1)
如果您想在回发之间保留一些值,请使用Session
或ViewState
。
Session["qno"] = (int)row["qno"];
如何从Session获取值。
int qno = 0;
if(Session["qno"] != null)
qno = int.TryParse(Session["qno"].ToString(), out qno);