FineUI/FineUI.Examples/grid/grid_summary_scrollbar.aspx.cs
三生石上 8e116609c6 v4.2.0
2015-05-19 14:45:47 +08:00

119 lines
3.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;
using Newtonsoft.Json.Linq;
namespace FineUI.Examples.grid
{
public partial class grid_summary_scrollbar : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
OutputSummaryData();
}
}
#region BindGrid
private void OutputSummaryData()
{
DataTable source = GetDataTable2();
float donateTotal = 0.0f;
float feeTotal = 0.0f;
foreach (DataRow row in source.Rows)
{
donateTotal += Convert.ToInt32(row["Donate"]);
feeTotal += Convert.ToInt32(row["Fee"]);
}
JObject summary = new JObject();
//summary.Add("major", "全部合计");
summary.Add("fee", feeTotal.ToString("F2"));
summary.Add("donate", donateTotal.ToString("F2"));
Grid1.SummaryData = summary;
}
private void BindGrid()
{
// 1.设置总项数特别注意数据库分页一定要设置总记录数RecordCount
Grid1.RecordCount = GetTotalCount();
// 2.获取当前分页数据
DataTable table = GetPagedDataTable(Grid1.PageIndex, Grid1.PageSize);
// 3.绑定到Grid
Grid1.DataSource = table;
Grid1.DataBind();
}
/// <summary>
/// 模拟返回总项数
/// </summary>
/// <returns></returns>
private int GetTotalCount()
{
return GetDataTable2().Rows.Count;
}
/// <summary>
/// 模拟数据库分页
/// </summary>
/// <returns></returns>
private DataTable GetPagedDataTable(int pageIndex, int pageSize)
{
DataTable source = GetDataTable2();
DataTable paged = source.Clone();
int rowbegin = pageIndex * pageSize;
int rowend = (pageIndex + 1) * pageSize;
if (rowend > source.Rows.Count)
{
rowend = source.Rows.Count;
}
for (int i = rowbegin; i < rowend; i++)
{
paged.ImportRow(source.Rows[i]);
}
return paged;
}
#endregion
#region Events
protected void Button1_Click(object sender, EventArgs e)
{
labResult.Text = HowManyRowsAreSelected(Grid1);
}
protected void Grid1_PageIndexChange(object sender, FineUI.GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
#endregion
}
}