2012-11-14 33 views
0

我正在使用DropDownList从FormViews中提取数据并正确计算它。我使用Label13来查看学生Run Time is。如果我选择用户1并将所有数据计算出结果,那么我选择一个用户2(现在还没有数据),现在如果我再次选择用户1而不将任何信息放入用户2中,它将从用户复制Label13结果一个数据给用户二(如果这是有道理的)。具体Label13DropDownList上的数据副本更改

下面是一些代码:

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


      } 
     } 




    } 

回答

0

我搞砸代码在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; 
    } 
} 
2

检查你的页面加载不获取调用两次

把你使用下来填充您的下降

if (!IsPostBack) 
{ 
}