页面上一个GRIDVIEW,显示学生各学科成绩。启用了自带的分页属性。在页脚显示每一科的平均分,第一页正常,但是第2页页脚显示结果是是整个GRIDVIEW数据列的和除以第2页所包含的行数,结果明显偏大。我想前面几页不显示平均数,只在最后一页的页脚显示。怎么做,谢谢大家了。我的代码是:
protected void Page_Load(object sender, EventArgs e)
{
string conStr = "Data Source=localhost; Integrated Security=SSPI; Initial Catalog=student;";
string sqlStr = "select * from studentTable";
SqlConnection sqlCon = new SqlConnection(conStr);
SqlDataAdapter sqlDa =new SqlDataAdapter(sqlStr,sqlCon);
DataSet sqlDs = new DataSet();
sqlCon.Open();
sqlDa.Fill(sqlDs,"studentTable");
.DataSource = sqlDs;
.DataBind();
sqlCon.Close();
}
int englishSum = 0;
int mathSum = 0;
int politicalSum = 0;
int chineseSum = 0;
int physicsSum = 0;
int historySum = 0;
int biologySum = 0;
protected void _RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex>=0)
{
englishSum += Convert.ToInt32(e.Row.Cells[4].Text);
mathSum += Convert.ToInt32(e.Row.Cells[5].Text);
politicalSum += Convert.ToInt32(e.Row.Cells[6].Text);
chineseSum += Convert.ToInt32(e.Row.Cells[7].Text);
physicsSum += Convert.ToInt32(e.Row.Cells[8].Text);
historySum += Convert.ToInt32(e.Row.Cells[9].Text);
biologySum += Convert.ToInt32(e.Row.Cells[10].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[4].Text = "AVG:" + ((int)(englishSum/.Rows.Count)).ToString();
e.Row.Cells[5].Text = "AVG:" + ((int)(mathSum / .Rows.Count)).ToString();
e.Row.Cells[6].Text = "AVG:" + ((int)(politicalSum / .Rows.Count)).ToString();
e.Row.Cells[7].Text = "AVG:" + ((int)(chineseSum / .Rows.Count)).ToString();
e.Row.Cells[8].Text = "AVG:" + ((int)(physicsSum / .Rows.Count)).ToString();
e.Row.Cells[9].Text = "AVG:" + ((int)(historySum / .Rows.Count)).ToString();
e.Row.Cells[10].Text = "AVG:" + ((int)(biologySum / .Rows.Count)).ToString();
}
}
protected void _PageIndexChanging(object sender, GridViewPageEventArgs e)
{
.PageIndex = e.NewPageIndex;
.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
string conStr = "Data Source=localhost; Integrated Security=SSPI; Initial Catalog=student;";
string sqlStr = "select * from studentTable";
SqlConnection sqlCon = new SqlConnection(conStr);
SqlDataAdapter sqlDa =new SqlDataAdapter(sqlStr,sqlCon);
DataSet sqlDs = new DataSet();
sqlCon.Open();
sqlDa.Fill(sqlDs,"studentTable");
.DataSource = sqlDs;
.DataBind();
sqlCon.Close();
}
int englishSum = 0;
int mathSum = 0;
int politicalSum = 0;
int chineseSum = 0;
int physicsSum = 0;
int historySum = 0;
int biologySum = 0;
protected void _RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex>=0)
{
englishSum += Convert.ToInt32(e.Row.Cells[4].Text);
mathSum += Convert.ToInt32(e.Row.Cells[5].Text);
politicalSum += Convert.ToInt32(e.Row.Cells[6].Text);
chineseSum += Convert.ToInt32(e.Row.Cells[7].Text);
physicsSum += Convert.ToInt32(e.Row.Cells[8].Text);
historySum += Convert.ToInt32(e.Row.Cells[9].Text);
biologySum += Convert.ToInt32(e.Row.Cells[10].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[4].Text = "AVG:" + ((int)(englishSum/.Rows.Count)).ToString();
e.Row.Cells[5].Text = "AVG:" + ((int)(mathSum / .Rows.Count)).ToString();
e.Row.Cells[6].Text = "AVG:" + ((int)(politicalSum / .Rows.Count)).ToString();
e.Row.Cells[7].Text = "AVG:" + ((int)(chineseSum / .Rows.Count)).ToString();
e.Row.Cells[8].Text = "AVG:" + ((int)(physicsSum / .Rows.Count)).ToString();
e.Row.Cells[9].Text = "AVG:" + ((int)(historySum / .Rows.Count)).ToString();
e.Row.Cells[10].Text = "AVG:" + ((int)(biologySum / .Rows.Count)).ToString();
}
}
protected void _PageIndexChanging(object sender, GridViewPageEventArgs e)
{
.PageIndex = e.NewPageIndex;
.DataBind();
}
return;