我将为候选人创建一个在线测试。我有以下要求:
当我按下标签时的下一个按钮控件(问题#,问题文本,带文字的单选按钮应该被清除),按下一个按钮我想要下一个记录,但是在第一个问题及其所有控件的样本处。这怎么可能?如果是的话,请帮助我。这是我试过的代码。 dt是我填充的数据表
protected void btnPrev_Click(object sender, EventArgs e)
{
if (increment > 0)
{
increment--;
NavigateRecords();
} //tbFirst.Text = increment.ToString();
else
{
//MessageBox.Show("First Record");
}
}
protected void btnLast_Click(object sender, EventArgs e)
{
maxRows = dt.Rows.Count;
if (increment != maxRows - 1)
{
// tbFirst.Text = increment.ToString();
increment = maxRows - 1;
NavigateRecords();
}
}
protected void btnFirst_Click(object sender, EventArgs e)
{
if (increment > 0)
{
increment = 0;
NavigateRecords();
} //tbFirst.Text = increment.ToString();
}
protected void btnNext_Click(object sender, EventArgs e)
{
maxRows = dt.Rows.Count;
if (increment != maxRows - 1)
{
increment++;
NavigateRecords();
}
else
{
}
}
public void NavigateRecords()
{
Page.Controls.Clear();
dr = dt.Rows[increment];
Label[] questionNo = new Label[dt.Rows.Count];
Label[] questionText = new Label[dt.Rows.Count];
RadioButton[] rbs = new RadioButton[dt.Rows.Count];
//question no
questionNo[increment] = new Label();
questionNo[increment].Text = "<h3><div class=\"center-
block\">Question: " + dt.Rows[increment]["SrNo"].ToString() + "</div></h3>";
//question text
questionText[increment] = new Label();
questionText[increment].Text = "<h3>" + dt.Rows[increment]["QuestionText"].ToString() + "</h3>";
divQuestionText.Controls.Add(questionNo[increment]);
divQuestionText.Controls.Add(questionText[increment]);
for (j = 3; j <= 6; j++)
{
rbs[increment] = new RadioButton();
//option
rbs[increment].GroupName = increment.ToString();
rbs[increment].Text = dt.Rows[increment][j].ToString() + "<br>";
divQuestionText.Controls.Add(rbs[increment]);
}
}
答案 0 :(得分:0)
最简单的方法是为每一步创建一个自己的Panel
。然后在btnNext_Click
- 事件中,你必须在背景中推动面板或使用Control.Visible
属性使其消失,并将下一个放在前面。
通过这种方式,您可以使用&#34; VS Form Inspector&#34;来编辑所需的所有控件。并且不必弄乱代码中的控制位置。
MFG
BMS