Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

why does checkchanged event does not fire on uncheck of checkbox in asp.net

Part of attendance tracker application which displays subjects of user and lets him mark his own attendance.

With enableviewstate="true", the checkbox does not get unchecked and the checkchanged event does not execute.

namespace portal

{

    public partial class tracker : System.Web.UI.Page
    {

        String[] split; string day;
        protected void Page_Load(object sender, EventArgs e)
        {

            /* if (Session["uname"] == null)
             {
                 Response.Redirect("Firstpage.aspx");
             }*/
            String[] split = new String[16];
            DateTime d1 = DateTime.Today;
            string month = d1.ToString("MMMM");
            Lblmonth.Text = month;
            String userid = Session["uname"].ToString();
            SqlConnection con2 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
            SqlCommand cmd2 = new SqlCommand("select sbranch ,syear from studdetails where userid=@userid ", con2);
            cmd2.Parameters.AddWithValue("userid", userid);
            String branch = "", year = "";
            SqlDataReader rdr2 = null;
            con2.Open();
            rdr2 = cmd2.ExecuteReader();
            while (rdr2.Read())
            {
                branch = rdr2["sbranch"].ToString();
                year = rdr2["syear"].ToString();
            }
            con2.Close();
            int sem = 0;
            switch (year)
            {
                case "B.E": sem = 8;
                    break;
                case "T.E": sem = 6;
                    break;
                case "S.E": sem = 4;
                    break;
                case "F.E": sem = 2;
                    break;
                default: sem = 2;
                    break;

            }

            int tempmonth = (int)(d1.Month);
            if (tempmonth > 6)
                sem = sem - 1;



            SqlConnection con3 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
            SqlCommand cmd3 = new SqlCommand("select subject from subjecttable where department=@dept and semester=@sem ", con3);
            cmd3.Parameters.AddWithValue("dept", branch);
            cmd3.Parameters.AddWithValue("sem", sem);
            con3.Open();
            SqlDataReader rdr3 = null;
            rdr3 = cmd3.ExecuteReader();
            string subject = "";
            while (rdr3.Read())
            {
                subject = rdr3["subject"].ToString();

            }
            con3.Close();
            Char[] separator = new Char[] { ',' };
            String[] subsplit = subject.Split(separator);
            int size = subsplit.Length;
            switch (size)
            {
                case 6: subj6.Text = subsplit[5];
                    goto case 5;
                case 5: subj5.Text = subsplit[4];
                    goto case 4;
                case 4: subj4.Text = subsplit[3];
                    goto case 3;
                case 3: subj3.Text = subsplit[2];
                    goto case 2;
                case 2: subj2.Text = subsplit[1];
                    goto case 1;
                case 1: subj1.Text = subsplit[0];
                    break; ;

            }

        }
        protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
        {
            if (e.Day.IsWeekend)
            {
                e.Cell.BackColor = System.Drawing.Color.DarkBlue;
            }
            else
            {
                e.Cell.BackColor = System.Drawing.Color.LightBlue;
            }
            SelectedDatesCollection dates = Calendar1.SelectedDates;

            DateTime toDay = DateTime.Today;
            string days = toDay.ToLongDateString();

            Labelday.Text = days;
            Char[] separator = new Char[] { ',' };
            String[] split1 = days.Split(separator);
            day = split1[0];
            Session["day"] = Calendar1.SelectedDate.ToShortDateString();
            if (dates.Count > 0)
            {
                Labelday.Text = dates[0].ToLongDateString() + "<br />";
                String temp = Labelday.Text;
                split1 = temp.Split(separator);
                day = split1[0];
            }
            if (!(day.Equals("Saturday") || day.Equals("Sunday")))
            {
                SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
                string cla = Convert.ToString(Session["uclass"]);
                SqlCommand cmd = new SqlCommand("select " + day + " from studtimetable where class = @class ", con);

                con.Open();
                cmd.Parameters.AddWithValue("class", cla);
                SqlDataReader rdr = null;
                String tt = "";
                rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    tt = rdr[day].ToString();
                }
                con.Close();

                split = tt.Split(separator);
                int size = split.Length;
                lbltime.Visible = true;
                Lblsubj.Visible = true;
                Lblatt.Visible = true;
                switch (size)
                {
                    case 16: Label15.Text = split[15];
                        Session["l15"] = Label15.Text;
                        Label14.Text = split[14];
                        CheckBox8.Visible = true;

                        goto case 14;
                    case 14: Label13.Text = split[13];
                        Session["l13"] = Label13.Text;
                        Label12.Text = split[12];
                        CheckBox7.Visible = true;
                        goto case 12;
                    case 12: Label11.Text = split[11];
                        Session["l11"] = Label11.Text;
                        Label10.Text = split[10];
                        CheckBox6.Visible = true;
                        goto case 10;
                    case 10: Label9.Text = split[9];
                        Session["l9"] = Label9.Text;
                        Label8.Text = split[8];
                        CheckBox5.Visible = true;
                        goto case 8;
                    case 8: Label7.Text = split[7];
                        Session["l7"] = Label7.Text;
                        Label6.Text = split[6];
                        CheckBox4.Visible = true;
                        goto case 6;
                    case 6: Label5.Text = split[5];
                        Session["l5"] = Label5.Text;
                        Label4.Text = split[4];
                        CheckBox3.Visible = true;
                        goto case 4;
                    case 4: Label3.Text = split[3];
                        Session["l3"] = Label3.Text;
                        Label2.Text = split[2];
                        CheckBox2.Visible = true;
                        goto case 2;
                    case 2: Label1.Text = split[1];
                        Session["l1"] = Label1.Text;
                        Label0.Text = split[0];
                        CheckBox1.Visible = true;
                        break;

                }

            }
            else
            {
                lbltime.Text = "Enjoy weekend";
                lbltime.Visible = true;
            }
        }
        protected void Calendar1_SelectionChanged(object sender, EventArgs e)
        {

            CheckBox1.Checked = false;

            CheckBox2.Checked = false;

            CheckBox3.Checked = false;

            CheckBox4.Checked = false;

            CheckBox5.Checked = false;

            CheckBox6.Checked = false;

            CheckBox7.Checked = false;

            CheckBox8.Checked = false;
        }



        protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (CheckBox1.Checked == true)
            {
                string sub = Session["l1"].ToString();
                string userid = Session["uname"].ToString();
                string date = Session["day"].ToString();
                string tempclass = Session["uclass"].ToString();

                SqlConnection con4 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
                SqlCommand cmd4 = new SqlCommand("insert into " + tempclass + "track values ('" + userid + "','" + sub + "','" + date + "')", con4);
                con4.Open();

                cmd4.ExecuteNonQuery();
                con4.Close();


            }
            else
            {
                Label18.Text = "uncheck";//temporary to check if this block executes
            }
        }



        protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
        {

            if (CheckBox2.Checked == true)
            {
                string sub = Session["l3"].ToString();
                string userid = Session["uname"].ToString();
                string date = Session["day"].ToString();
                string tempclass = Session["uclass"].ToString();

                SqlConnection con4 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
                SqlCommand cmd4 = new SqlCommand("insert into " + tempclass + "track values ('" + userid + "','" + sub + "','" + date + "')", con4);
                con4.Open();

                cmd4.ExecuteNonQuery();
                con4.Close();

                //Response.Redirect("tracker.aspx");
            }
            else
            {
            }

        }

        protected void CheckBox3_CheckedChanged(object sender, EventArgs e)
        {
            if (CheckBox3.Checked == true)
            {
                string sub = Session["l5"].ToString();
                string userid = Session["uname"].ToString();
                string date = Session["day"].ToString();
                string tempclass = Session["uclass"].ToString();

                SqlConnection con4 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
                SqlCommand cmd4 = new SqlCommand("insert into " + tempclass + "track values ('" + userid + "','" + sub + "','" + date + "')", con4);
                con4.Open();

                cmd4.ExecuteNonQuery();
                con4.Close();

                //Response.Redirect("tracker.aspx");
            }
            else
            {
            }

        }

        protected void CheckBox4_CheckedChanged(object sender, EventArgs e)
        {
            if (CheckBox4.Checked == true)
            {
                string sub = Session["l7"].ToString();
                string userid = Session["uname"].ToString();
                string date = Session["day"].ToString();
                string tempclass = Session["uclass"].ToString();

                SqlConnection con4 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
                SqlCommand cmd4 = new SqlCommand("insert into " + tempclass + "track values ('" + userid + "','" + sub + "','" + date + "')", con4);
                con4.Open();

                cmd4.ExecuteNonQuery();
                con4.Close();

                //Response.Redirect("tracker.aspx");
            }
            else
            {

            }

        }

        protected void CheckBox5_CheckedChanged(object sender, EventArgs e)
        {
            if (CheckBox5.Checked == true)
            {
                string sub = Session["l9"].ToString();
                string userid = Session["uname"].ToString();
                string date = Session["day"].ToString();
                string tempclass = Session["uclass"].ToString();

                SqlConnection con4 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
                SqlCommand cmd4 = new SqlCommand("insert into " + tempclass + "track values ('" + userid + "','" + sub + "','" + date + "')", con4);
                con4.Open();

                cmd4.ExecuteNonQuery();
                con4.Close();

                //Response.Redirect("tracker.aspx");
            }
            else
            {
            }
        }

        protected void CheckBox6_CheckedChanged(object sender, EventArgs e)
        {
            if (CheckBox6.Checked == true)
            {
                string sub = Session["l11"].ToString();
                string userid = Session["uname"].ToString();
                string date = Session["day"].ToString();
                string tempclass = Session["uclass"].ToString();

                SqlConnection con4 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
                SqlCommand cmd4 = new SqlCommand("insert into " + tempclass + "track values ('" + userid + "','" + sub + "','" + date + "')", con4);
                con4.Open();

                cmd4.ExecuteNonQuery();
                con4.Close();

                //Response.Redirect("tracker.aspx");
            }
            else
            {
            }
        }

        protected void CheckBox7_CheckedChanged(object sender, EventArgs e)
        {
            if (CheckBox7.Checked == true)
            {
                string sub = Session["l13"].ToString();
                string userid = Session["uname"].ToString();
                string date = Session["day"].ToString();
                string tempclass = Session["uclass"].ToString();

                SqlConnection con4 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
                SqlCommand cmd4 = new SqlCommand("insert into " + tempclass + "track values ('" + userid + "','" + sub + "','" + date + "')", con4);
                con4.Open();

                cmd4.ExecuteNonQuery();
                con4.Close();

                //Response.Redirect("tracker.aspx");
            }
            else
            {
            }

        }

        protected void CheckBox8_CheckedChanged(object sender, EventArgs e)
        {
            if (CheckBox8.Checked == true)
            {
                string sub = Session["l15"].ToString();
                string userid = Session["uname"].ToString();
                string date = Session["day"].ToString();
                string tempclass = Session["uclass"].ToString();

                SqlConnection con4 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=F:\mmm\portal\App_Data\student.mdf;Integrated Security=True;User Instance=True");
                SqlCommand cmd4 = new SqlCommand("insert into " + tempclass + "track values ('" + userid + "','" + sub + "','" + date + "')", con4);
                con4.Open();

                cmd4.ExecuteNonQuery();
                con4.Close();

                //Response.Redirect("tracker.aspx");
            }
            else
            {
            }
        }
    }
}
like image 948
Mohit Jain Avatar asked Apr 02 '13 19:04

Mohit Jain


1 Answers

From MSDN (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkbox.oncheckedchanged.aspx):

A CheckBox control must persist some values between posts to the server for this event to work correctly. Be sure that view state is enabled for this control.

When (html) checkbox is not checked and form is submitted, no value would be passed back to server, that's why you need to enable ViewState for this control, so ASP.NET would keep track of the state (checked/unchecked).

like image 91
Floremin Avatar answered Sep 22 '22 21:09

Floremin