簡體   English   中英

DropDownList上的數據副本發生了變化

[英]Data copies on DropDownList change

我正在使用DropDownList從FormViews中提取數據並正確計算它。 我使用Label13來查看學生Run Time is什么。 如果我選擇用戶1並放置所有數據來計算結果,那么我選擇一個用戶2(它還沒有數據),現在如果我再次選擇用戶1而不向用戶2放置任何信息,它將復制用戶的Label13結果一個數據給用戶二。(如果這是有道理的)。 具體是Label13

這是一些代碼:

    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();


            }
        }




    }

檢查您的頁面加載是否未被調用兩次

將您用於填充下拉列表的代碼放入

    if  (!IsPostBack)
{
}

我在DropDownList1_SelectedIndexChange方法中搞砸了一些代碼,並且還更改了我的FormView1 EnableViewState="False"

這是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;
     }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM