【发布时间】:2014-02-10 00:27:19
【问题描述】:
在我的页面上,我有 3 个文本框,其中包含标题、描述、提示和关键字的值。当我单击一个按钮时,它会将值插入到数据库中。当它回发时,值会保留在文本框中,这就是我想要的。 页面的下一部分包含 Question、CorrectAnswer、Wrong1、Wrong2、Wrong3 的文本框。当我单击按钮将它们插入数据库时,它起作用了,并且在按钮触发其事件后,我让这 5 个文本框的文本值为 null,因此我可以继续添加问题和答案。 但是,当该按钮导致其回发时,第一个文本框中的值会消失,我不希望这样,因为我对标题文本框进行了验证,因为您无法在文本框中没有标题的情况下添加任何问题和答案。 那么当第二个按钮导致回发时,如何将值保留在第一个文本框中? 这是两个按钮的代码,btnAddQandA 是导致回发的按钮..
protected void btnAddQuizTitle_Click(object sender, EventArgs e)
{
daccess.AddQuizName(tbTitle.Text, taDescription.InnerText, taTips.InnerText, tbKeywords.Text);
Session["TheQuizID"] = daccess.TheID;
string myID = (string)(Session["TheQuizID"]);
int theID = Int32.Parse(myID);
if (tbKeywords.Text != null)
{
string TheKeywordHolder = "";
foreach (ListItem LI in cblGrades.Items)
{
if (LI.Selected == true)
{
TheKeywordHolder = TheKeywordHolder + LI.Value + ",";
}
}
daccess.AddQuizKeywords(theID, tbKeywords.Text);
}
}
protected void btnAddQA_Click(object sender, EventArgs e)
{
int theID = (int)Session["TheQuizID"];
daccess.AddQuizQA(tbQuestion.Text, tbCorrect.Text, tbWrong1.Text, tbWrong2.Text, tbWrong3.Text, theID);
tbQuestion.Text = null;
tbCorrect.Text = null;
tbWrong1.Text = null;
tbWrong2.Text = null;
tbWrong3.Text = null;
}
这是我的页面加载事件
DataAccess daccess = new DataAccess();
protected void Page_Load(object sender, EventArgs e)
{
daccess.CblGradesDS();
cblGrades.DataSource = daccess.DsCbl;
cblGrades.DataValueField = "GradeID";
cblGrades.DataTextField = "Grade";
cblGrades.RepeatColumns = 8;
cblGrades.RepeatDirection = RepeatDirection.Horizontal;
cblGrades.DataBind();
daccess.CblSubjectsDS();
cblSubjects.DataSource = daccess.DsCbl2;
cblSubjects.DataValueField = "SubjectID";
cblSubjects.DataTextField = "SubjectName";
cblSubjects.RepeatColumns = 4;
cblSubjects.RepeatDirection = RepeatDirection.Horizontal;
cblSubjects.DataBind();
if (!IsPostBack)
{
}
}
【问题讨论】: