|
|
|
ASP.Net (C#) มีปัญหากับการแบ่งหน้า Gridview และหาผลรวมของแต่ละหน้าครับ |
|
|
|
|
|
|
|
คือว่าผมแบ่งหน้า ใน Gridview แล้ว และหาค่าผลรวมที่ footer ของแต่ละหน้า แต่มีปัญหาคือว่า พอกดคลิกที่หน้าต่อไปผลรวมของ footer มันจะรวม ของหน้าที่แล้วด้วยครับ ผมอยากรวมเฉพาะหน้านั้นๆ ที่แสดงครับ ช่วยแนะนำหน่อยครับ เพิ่งหัดเขียนครับ
Code (C#)
public partial class Default2 : System.Web.UI.Page
{
SqlConnection objConn;
Int16 Total2 = 0;
//int num = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["User"]!= null)
{
getdata();
}
else {
Response.Redirect("Default3.aspx");
}
}
protected void myDataGrid_PageIndexChanging(object sender, System.Web.UI.WebControls.GridViewPageEventArgs e)
{
myDataGrid.PageIndex = e.NewPageIndex;
getdata();
}
public void getdata()
{
String strConnString;
strConnString = "Server=10.11.1.17;UID=userreport;PASSWORD=gztr1998;database=DW01;Max Pool Size=400;Connect Timeout=600;";
objConn = new SqlConnection(strConnString);
objConn.Open();
if (objConn.State == ConnectionState.Open)
{
this.lblText.Text = "SQL Server Connected";
}
else
{
this.lblText.Text = "SQL Server Connect Failed";
}
String Sql = "SELECT [Doc Date], [Package Name], SUM([SMS Code Sent]) AS [SMS Code Sent], SUM([SMS Payment-CS]) AS [Counter Service], SUM([PayDay-1]) AS [1 Day], SUM([PayDay-2]) AS [2 Days], SUM([PayDay-3]) AS [3 Days], SUM([PayDay-4]) AS [4 Days], SUM([PayDay-5]) AS [5 Days], SUM([PayDay-6]) AS [6 Days], SUM([PayDay-7]) AS [7 Days], SUM([PayDay-more7]) AS [more7], SUM([SMS Cancle]) AS [SMS Cancel] FROM CEM_SMSCODE_Summary where [DOC DATE] between '2013-05-21' and '2013-05-22' GROUP BY [Doc Date], [Package Name] ORDER BY [Doc Date], [Package Name]";
SqlCommand com = new SqlCommand();
com.Connection = objConn;
com.CommandText = Sql;
SqlDataReader dr = com.ExecuteReader();
if (dr.HasRows)
{
DataTable dt = new DataTable();
dt.Load(dr);
myDataGrid.DataSource = dt;
myDataGrid.DataBind();
}
}
protected void myDataGrid_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
//if (e.Row.RowType == DataControlRowType.DataRow)
//{
// num += Convert.ToInt32(e.Row.Cells[2].Text);
//}
//else if (e.Row.RowType == DataControlRowType.Footer)
//{
// e.Row.Cells[2].Text = num.ToString();
//}
if (e.Row.RowType == DataControlRowType.DataRow)
{
Total2 += Convert.ToInt16(DataBinder.Eval(e.Row.DataItem, "SMS Code Sent"));
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "Totals : ";
e.Row.Cells[2].Text = Total2.ToString();
}
}
}
Tag : .NET, C#
|
|
|
|
|
|
Date :
2013-06-06 09:57:43 |
By :
theyounggun |
View :
1800 |
Reply :
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่ลองไปดูนะครับ อันนั้นจะแบ่งเป็นหมวดหมู่ แต่ของผมแบ่งเป็นหน้าๆอะครับ มันจะมีปัญหาตอนคลิกไปหน้า ต่อๆไป ครับ
|
|
|
|
|
Date :
2013-06-07 09:55:43 |
By :
theyounggun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ
Code (C#)
protected void myDataGrid_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
//if (e.Row.RowType == DataControlRowType.DataRow)
//{
// num += Convert.ToInt32(e.Row.Cells[2].Text);
//}
//else if (e.Row.RowType == DataControlRowType.Footer)
//{
// e.Row.Cells[2].Text = num.ToString();
//}
if (e.Row.RowType == DataControlRowType.DataRow)
{
Total2 += Convert.ToInt16(DataBinder.Eval(e.Row.DataItem, "SMS Code Sent"));
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "Totals : ";
e.Row.Cells[2].Text = GetSumData(myDataGrid).ToString();
}
}
private int GetSumData(GridView gvParams) // ฟังก์ชั่นที่ใช้ สำหรับ หาผลรวมของแต่ละหน้า เป็นหน้าๆไป อะนะ โดยส่งค่า Gridview มาที่ ฟังก์ชั่นนี้ แล้ว นำค่าที่รับมา หาค่าหน้า แล้วก็วน loop
{
int pageIndexSeek = gvParams.PageIndex;
int sumData = 0;
for (int PageSeek = 0; PageSeek < gvParams.PageCount; PageSeek++)
{
if (pageIndexSeek == PageSeek)
{
//gvParams.PageIndex = pageIndexSeek;
foreach (GridViewRow gr in gvParams.Rows)
{
sumData += Convert.ToInt32(gr.Cells[2].Text);
}
}
}
return sumData;
}
|
|
|
|
|
Date :
2013-06-07 14:55:14 |
By :
theyounggun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2013-06-07 14:58:11 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|