using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Milestone.Friso.Web
{
public partial class Controls_Web_DataListTool : System.Web.UI.UserControl
{
private DataTable _dt;
private int _pz;
public DataTable dataTable
{
set { _dt = value; }
get { return _dt; }
}
public PagedDataSource pagedDataSource
{
get { return GetPageDataSource(); }
}
public int PageSize
{
set { _pz = value; }
get { return _pz; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
int PageTotal=1;
if (dataTable.Rows.Count < PageSize)
PageTotal = 1;
else if(dataTable.Rows.Count % PageSize==0)
PageTotal = dataTable.Rows.Count / PageSize;
else if (dataTable.Rows.Count % PageSize > 0)
PageTotal = dataTable.Rows.Count / PageSize + 1;
for (int i = 0; i < PageTotal; i++)
{
int a = i + 1;
this.ddlCurrentPage.Items.Add(a.ToString() + "/" + PageTotal);
}
if (PageTotal == 1)
this.lblcount2.Text = dataTable.Rows.Count.ToString();
}
}
private PagedDataSource GetPageDataSource()
{
//对PagedDataSource 对象的相关属性赋值
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = dataTable.DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = PageSize;
int CurPage;
//当前页面从Page查询参数获取
if (Request.QueryString["Page"] != null)
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage = 1;
objPds.CurrentPageIndex = CurPage - 1;
lblCurrentPage.Text = "Page: " + CurPage.ToString();
try
{
this.ddlCurrentPage.SelectedIndex = CurPage - 1;
if (CurPage == 1)
{
if (dataTable.Rows.Count==0)
this.lblcount1.Text = "0";
else
this.lblcount1.Text = "1";
this.lblcount2.Text = PageSize.ToString();
if(CurPage==this.ddlCurrentPage.Items.Count)
this.lblcount2.Text = dataTable.Rows.Count.ToString();
}
else
{
this.lblcount1.Text = Convert.ToString((CurPage-1) * PageSize+1);
this.lblcount2.Text = Convert.ToString((CurPage-1) * PageSize + PageSize);
if(CurPage==this.ddlCurrentPage.Items.Count)
this.lblcount2.Text = dataTable.Rows.Count.ToString();
}
}
catch
{
this.lblcount1.Text = Convert.ToString((CurPage-1) * PageSize);
this.lblcount2.Text = dataTable.Rows.Count.ToString();
}
if (!objPds.IsFirstPage)
{
lbPrev.PostBackUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
}
if (!objPds.IsLastPage)
{
lbNext.PostBackUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
}
return objPds;
}
//protected void ddlCurrentPage_SelectedIndexChanged(object sender, EventArgs e)
//{
// Response.Redirect(Request.CurrentExecutionFilePath + "?SearchTitle=" + Session["Search"].ToString() + "&Page=" + Convert.ToString(this.ddlCurrentPage.SelectedIndex + 2));
//}
}
}