我有40个复选框,当用户注册他的帐户时,每个用户在sql表中生成40行数据,如
+----+----------+--------------+---------------------+---------+
| Id | UserName | Category | CheckBoxValue | Checked |
+----+----------+--------------+---------------------+---------+
| 1 | Sabab | Emotion | Maintaining Emotion | no |
| 2 | Sabab | Emotion | Expressing Emotion | no |
| 3 | Sabab | Self Defence | Swimming | no |
| . | xx | xx | xx | no |
| 40 | Sabab | Personality | Punctuality | no |
+----+----------+--------------+---------------------+---------+
当另一个用户注册另外40行时,生成具有相同值的类别,复选框值,选中值。 只有ID和用户名不同。
当用户登录他的帐户时,他可以检查一些复选框并更新数据库。假设Sabab在登录他的帐户后,检查维护情绪 并表达情感。然后点击更新按钮,然后ID为1和2的选中值将为是。
如果sabab从他的帐户中退出,然后又登录到他的帐户,那么他应该会看到保持情绪和表达情感复选框。
要更新数据库,我使用了以下代码:
protected void SendButton_Click(object sender, EventArgs e)
{
UserManager managerObject=new UserManager();
if (Session["userType"]==null)
{
Response.Write("<script>alert('You have to log in first.');</script>");
}
else if (Session["userType"]!=null)
{
if (Session["userType"].ToString() == "trainee")
{
if (perceivingEmotionsCheckbox.Checked)
{
managerObject.UpdateCheckboxValueOfIndexPage(Session["userName"].ToString(), "Maintaining Emotion","yes");
}
else
{
managerObject.UpdateCheckboxValueOfIndexPage(Session["userName"].ToString(), "Maintaining Emotion", "no");
}
if (usingEmotionsCheckbox.Checked)
{
managerObject.UpdateCheckboxValueOfIndexPage(Session["userName"].ToString(), "Expressing Emotion", "yes");
}
else
{
managerObject.UpdateCheckboxValueOfIndexPage(Session["userName"].ToString(), "Using Emotion", "no");
}
Response.Write("<script>alert('Your choices have been updated');</script>");
}
}
加载复选框已使用以下方法,LoadCheckboxes()并将其放入页面加载方法:
public void LoadCheckBoxes()
{
UserManager managerObject=new UserManager();
if (managerObject.CheckBoxChecked(Session["userName"].ToString(), "Maintaining Emotion")=="yes")
{
maintainingEmotionsCheckbox.Checked = true;
}
else
{
maintainingEmotionsCheckbox.Checked = false;
}
if (managerObject.CheckBoxChecked(Session["userName"].ToString(), "Expressing Emotions")=="yes")
{
expressingEmotionsCheckbox.Checked = true;
}
else
{
expressingEmotionsCheckbox.Checked = false;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (Session["userType"] == "trainee")
{
if (!IsPostBack)
{
LoadCheckBoxes();
}
}
}
当用户Sabab进入他的帐户时,一切都很好,并且复选框根据数据库中已检查和未检查的值加载。 但是,如果Sabab取消选中已选中的复选框,然后尝试重新加载页面,则不会重新加载页面。看起来网页已被破解。