简体   繁体   中英

Data copies on DropDownList change

I'm using a DropDownList to pull up data from FormViews and properly calculate it. I use Label13 to see what the students Run Time is . If I select user one and place all the data it calculates a result, then I select a user two(which has no data yet), now if I select user one again without placing any information into user two it will copy Label13 results from user ones data to user two.(if that makes sense). Specifically Label13 .

Here is some code:

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Label13.Text = "";

        if (DropDownList1.SelectedValue != "0")
        {
            Score();

        }
    }
 protected void Score()
    {
        Label13.Text = "";

        //Button1.Visible = true;
        Button5.Visible = true;
        Label19.Visible = false;
        UpdatePanel4.Visible = true;

        FormView2.DataBind();
        Label sitL = ((Label)FormView2.FindControl("SitUpsLabel"));
        Label pushL = ((Label)FormView2.FindControl("pushUpsLabel"));
        Label MeterL = ((Label)FormView2.FindControl("MeterLabel"));

        if (DropDownList1.SelectedValue != "0")
        {
            if (sitL.Text != "" || pushL.Text != "" || MeterL.Text != "")
            {

                int count = 0;
                int counter2 = 0;
                string test = sitL.Text;
                decimal val;
                string test2 = pushL.Text;
                decimal val2;
                string test3 = MeterL.Text;
                decimal val3;

                Decimal.TryParse(test, out val);
                Decimal.TryParse(test2, out val2);
                Decimal.TryParse(test3, out val3);
                //decimal holder = 0;
                //decimal holder2 = 0;
                //decimal scores = 0;


                for (int i = 0; i < situps.Length; i++)
                {
                    if (val == 30 + count)
                    {
                        Label14.Text = "SitUps Score: " + situps[i];
                        holder = situps[i];
                    }
                    count = count + 1;
                }
                for (int i = 0; i < pushups.Length; i++)
                {
                    if (val2 == 21 + counter2)
                    {
                        Label15.Text = "Push Ups Score: " + pushups[i];
                        holder2 = pushups[i];
                    }
                    counter2 = counter2 + 1;
                }

                decimal counter = 0;
                decimal sideCounter = 0;

                int placer = 0;
                for (int i = 0; i < 1700; i++)
                {

                    if (val3 == 56 + counter)
                    {
                        Label20.Text = "300 Meter: " + meterRun[placer];
                        holder3 = meterRun[placer];


                    }
                    counter = counter + .01M;
                    sideCounter = sideCounter + .01M;
                    if (sideCounter >= .5M)
                    {
                        placer++;
                        sideCounter = 0;
                    }

                }

                if (val3 < 56)
                {
                    holder3 = 50;
                }
                if (val3 > 71)
                {
                    holder3 = 0;
                }


                if (val < 30)
                {
                    holder = 0.00M;
                }
                if (val > 38)
                {
                    holder = 50.00M;
                }
                if (val2 < 21)
                {
                    holder2 = 0.00M;
                }
                if (val2 > 35)
                {
                    holder2 = 50.00M;
                }

                scores = holder + holder2 + holder3;
                scores = 160 - scores;

                int min1 = 1;
                int min2 = 4;
                int sec1 = 3;
                int sec2 = 1;
                string a = "{0}{1}{2}{3}";
                string[] numbers = new string[57];
                for (int i = 0; i < 57; i++)
                {
                    numbers[i] = string.Format(a, min1, min2, sec1, sec2);

                    sec2 = sec2 - 1;
                    if (sec2 == -1)
                    {
                        sec2 = 9;
                        sec1 = sec1 - 1;
                    }
                    if (sec1 == -1)
                    {
                        sec1 = 5;
                        min2 = min2 - 1;
                    }
                    //Console.WriteLine(numbers[i]);


                }


                decimal points = 30;
                decimal points2 = 30.357M;

                {

                    if (scores <= 30)
                    {
                        Label12.Text = scores.ToString();
                        Label13.Text = "1431";
                        SqlConnection conns = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDBConnectionString1"].ConnectionString);
                        SqlCommand cmd = new SqlCommand("UPDATE bleaTest SET rTimeN = @rTimeN WHERE (Id = @Id)", conns);
                        cmd.CommandType = CommandType.Text;
                        Label IdL = ((Label)FormView1.FindControl("IdLabel"));
                        cmd.Parameters.AddWithValue("@Id", IdL.Text);
                        cmd.Parameters.AddWithValue("@rTimeN", Label13.Text);
                        conns.Open();
                        cmd.ExecuteNonQuery();

                    }
                    if (scores > 40)
                    {
                        Label12.Text = "Failed";
                        Label13.Text = "Failed";

                        SqlConnection conns = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDBConnectionString1"].ConnectionString);
                        SqlCommand cmd = new SqlCommand("UPDATE bleaTest SET rTimeN = @rTimeN WHERE (Id = @Id)", conns);
                        cmd.CommandType = CommandType.Text;
                        Label IdL = ((Label)FormView1.FindControl("IdLabel"));
                        cmd.Parameters.AddWithValue("@Id", IdL.Text);
                        cmd.Parameters.AddWithValue("@rTimeN", Label13.Text);
                        conns.Open();
                        cmd.ExecuteNonQuery();


                    }
                    for (int i = 0; i < miles.Length; i++)
                    {

                        if (scores > points && scores < points2)
                        {
                            Label12.Text = scores.ToString();
                            Label13.Text = numbers[i];
                            SqlConnection conns = new SqlConnection(ConfigurationManager.ConnectionStrings["TestDBConnectionString1"].ConnectionString);
                            SqlCommand cmd = new SqlCommand("UPDATE bleaTest SET rTimeN = @rTimeN WHERE (Id = @Id)", conns);
                            cmd.CommandType = CommandType.Text;
                            Label IdL = ((Label)FormView1.FindControl("IdLabel"));
                            cmd.Parameters.AddWithValue("@Id", IdL.Text);
                            cmd.Parameters.AddWithValue("@rTimeN", Label13.Text);
                            conns.Open();
                            cmd.ExecuteNonQuery();

                        }
                        points = points + .357M;
                        points2 = points2 + .357M;


                    }
                }


                Label16.Text = scores.ToString();


            }
        }




    }

Check your page load isn't getting called twice

Put the code you use to populate your drop down in

    if  (!IsPostBack)
{
}

I messed around with some code in the DropDownList1_SelectedIndexChange method and also changed my FormView1 EnableViewState="False"

Here's the code for DropDownList1_SelectedIndexChange :

 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (DropDownList1.SelectedValue != "0")
     {
         FormView2.DataBind();
         Label12.Text = "";
         Label13.Text = "";

         Button2_Click(sender, e);
         Button5.Visible = true;
         Label19.Visible = false;
         UpdatePanel4.Visible = true;
     }
     else
     {
         UpdatePanel4.Visible = false;
         Button5.Visible = false;
         Label19.Visible = true;
     }
 }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM