根据SQL数据库中的数据检查和取消选中复选框无法正常工作

时间:2017-10-19 20:52:56

标签: asp.net sql-server

我有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取消选中已选中的复选框,然后尝试重新加载页面,则不会重新加载页面。看起来网页已被破解。

0 个答案:

没有答案