我使用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();
}
}
}
答案 0 :(得分:2)
检查您的页面加载是否未被调用两次
将您用于填写下拉列表的代码填入
if (!IsPostBack)
{
}
答案 1 :(得分: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;
}
}