asp.net分页功能的实现
效果图:
代码:
static int PageSize = 30; #region 分页部分代码
//*********************************** 数据分页 ********************************
protected void FirstPage_Click1(object sender, EventArgs e)
{
int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
DataTable dt = GetListByPage(ViewState["ssearchCondition"].ToString(),,PageSize);
int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize;
int CurrentPageNum;
if (PageCount == )
{
CurrentPageNum = ;
}
else
{
CurrentPageNum = ;
}
CurrentPage.Text = (CurrentPageNum).ToString();
TotalPageCount.Text = PageCount.ToString();
EnableJudger(); ViewState["PageCount"] = PageCount;
ViewState["CurrentPageNum"] = CurrentPageNum; int rowNum = ;
if (int.Parse(ViewState["PageCount"].ToString()) > )
{
rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
}
dt.Columns.Add(new DataColumn("rowN"));
for (int i = ; i < dt.Rows.Count; i++)
{
dt.Rows[i]["rowN"] = rowNum++;
} Repeater1.DataSource = dt;
Repeater1.DataBind();
} protected void PrePage_Click(object sender, EventArgs e)
{
int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize;
int CurrentPageNum = (int)ViewState["CurrentPageNum"];
DataTable dt = GetListByPage(ViewState["ssearchCondition"].ToString(), PageSize * (CurrentPageNum - ) + , PageSize * (CurrentPageNum - ) + PageSize);
CurrentPageNum -= ;
CurrentPage.Text = (CurrentPageNum).ToString();
TotalPageCount.Text = PageCount.ToString();
EnableJudger(); ViewState["PageCount"] = PageCount;
ViewState["CurrentPageNum"] = CurrentPageNum; int rowNum = ;
if (int.Parse(ViewState["PageCount"].ToString()) > )
{
rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
}
dt.Columns.Add(new DataColumn("rowN"));
for (int i = ; i < dt.Rows.Count; i++)
{
dt.Rows[i]["rowN"] = rowNum++;
} Repeater1.DataSource = dt;
Repeater1.DataBind();
} protected void NextPage_Click(object sender, EventArgs e)
{
int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize;
int CurrentPageNum = (int)ViewState["CurrentPageNum"];
DataTable dt = GetListByPage(ViewState["ssearchCondition"].ToString(), PageSize * (CurrentPageNum) + , PageSize * (CurrentPageNum) + PageSize);
CurrentPageNum += ;
CurrentPage.Text = (CurrentPageNum).ToString();
TotalPageCount.Text = PageCount.ToString();
EnableJudger(); ViewState["PageCount"] = PageCount;
ViewState["CurrentPageNum"] = CurrentPageNum; int rowNum = ;
if (int.Parse(ViewState["PageCount"].ToString()) > )
{
rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
}
dt.Columns.Add(new DataColumn("rowN"));
for (int i = ; i < dt.Rows.Count; i++)
{
dt.Rows[i]["rowN"] = rowNum++;
} Repeater1.DataSource = dt;
Repeater1.DataBind();
} protected void LastPage_Click(object sender, EventArgs e)
{
int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize; DataTable dt = GetListByPage(ViewState["ssearchCondition"].ToString(), PageSize * (PageCount - ) + , PageSize * (PageCount - ) + PageSize);
int CurrentPageNum = PageCount;
CurrentPage.Text = PageCount.ToString();
TotalPageCount.Text = PageCount.ToString();
EnableJudger(); ViewState["PageCount"] = PageCount;
ViewState["CurrentPageNum"] = CurrentPageNum; int rowNum = ;
if (int.Parse(ViewState["PageCount"].ToString()) > )
{
rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
}
dt.Columns.Add(new DataColumn("rowN"));
for (int i = ; i < dt.Rows.Count; i++)
{
dt.Rows[i]["rowN"] = rowNum++;
} Repeater1.DataSource = dt;
Repeater1.DataBind();
} protected void lbtnGoPage_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtGoPage.Text))
{
return;
}
int gotoPageNum = int.Parse(txtGoPage.Text);
int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
DataTable dt = new DataTable();
int CurrentPageNum = gotoPageNum;
int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize;
if (gotoPageNum < || gotoPageNum > PageCount)
{
}
else
{
dt = GetListByPage(ViewState["ssearchCondition"].ToString(), PageSize * (CurrentPageNum - ) + , PageSize * (CurrentPageNum - ) + PageSize);
CurrentPage.Text = (gotoPageNum).ToString();
TotalPageCount.Text = PageCount.ToString();
EnableJudger(); ViewState["PageCount"] = PageCount;
ViewState["CurrentPageNum"] = CurrentPageNum; int rowNum = ;
if (int.Parse(ViewState["PageCount"].ToString()) > )
{
rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
}
dt.Columns.Add(new DataColumn("rowN"));
for (int i = ; i < dt.Rows.Count; i++)
{
dt.Rows[i]["rowN"] = rowNum++;
} Repeater1.DataSource = dt;
Repeater1.DataBind();
}
}
private void EnableJudger()
{
//1. 没有数据
if (int.Parse(TotalPageCount.Text) <= )
{
FirstPage.Enabled = false;
PrePage.Enabled = false;
NextPage.Enabled = false;
LastPage.Enabled = false;
lbtnGoPage.Enabled = false;
CurrentPage.Text = "";
return;
}
//2. 只有一页数据
if (int.Parse(CurrentPage.Text) == && int.Parse(TotalPageCount.Text) == )
{
FirstPage.Enabled = false;
PrePage.Enabled = false;
NextPage.Enabled = false;
LastPage.Enabled = false;
lbtnGoPage.Enabled = false;
return;
}
//3. 当前为第一页,总页数大于1
if (int.Parse(CurrentPage.Text) == && int.Parse(TotalPageCount.Text) > )
{
FirstPage.Enabled = false;
PrePage.Enabled = false;
NextPage.Enabled = true;
LastPage.Enabled = true;
lbtnGoPage.Enabled = true;
return;
}
//4. 当前页为中间页
if (int.Parse(CurrentPage.Text) > && int.Parse(CurrentPage.Text) < int.Parse(TotalPageCount.Text))
{
FirstPage.Enabled = true;
PrePage.Enabled = true;
NextPage.Enabled = true;
LastPage.Enabled = true;
lbtnGoPage.Enabled = true;
return;
}
//5.当前页为最后一页,总页数大于1
if (int.Parse(CurrentPage.Text) == int.Parse(TotalPageCount.Text) && int.Parse(CurrentPage.Text) > )
{
FirstPage.Enabled = true;
PrePage.Enabled = true;
NextPage.Enabled = false;
LastPage.Enabled = false;
return;
} } /// <summary>
/// 获取记录总数
/// </summary>
public int GetRecordCount(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select count(1) from tb_ProjectRegister");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
object obj = GetSingle(strSql.ToString());
if (obj == null)
{
return ;
}
else
{
return Convert.ToInt32(obj);
}
}
public static object GetSingle(string SQLString)
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NMXT_DBConn"].ToString()))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
object obj = cmd.ExecuteScalar();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
/// <summary>
/// 分页获取数据列表
/// </summary>
public DataTable GetListByPage(string strWhere, int startIndex, int endIndex)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT * FROM ( ");
strSql.Append(" SELECT ROW_NUMBER() OVER (");
strSql.Append("order by T.roleId asc,T.replyEnd desc");
strSql.Append(")AS Row, T.* from tb_ProjectRegister T ");
if (!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.Append(" WHERE " + strWhere);
}
strSql.Append(" ) TT");
strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
DataSet ds = Query(strSql.ToString()); DataTable newDt = ds.Tables[].Copy();
DataColumn newCol1 = new DataColumn("Description");
DataColumn newCol2 = new DataColumn("newCol2");
DataColumn newCol3 = new DataColumn("newCol3");
DataColumn newCol4 = new DataColumn("newCol4");
DataColumn newCol5 = new DataColumn("newCol5");
DataColumn newCol6 = new DataColumn("newCol6");
DataColumn newCol7 = new DataColumn("newCol7");
DataColumn newCol8 = new DataColumn("newCol8");
newDt.Columns.Add(newCol1);
newDt.Columns.Add(newCol2);
newDt.Columns.Add(newCol3);
newDt.Columns.Add(newCol4);
newDt.Columns.Add(newCol5);
newDt.Columns.Add(newCol6);
newDt.Columns.Add(newCol7);
newDt.Columns.Add(newCol8);
Dictionary<string, string> newDic = GetRoleDescriptions();
if (newDic == null)
{
foreach (DataRow row in newDt.Rows)
{
row["Description"] = ""; if (Convert.ToDateTime(row["applyStart"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol2"] = "";
}
else
{
row["newCol2"] = Convert.ToDateTime(row["applyStart"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["applyEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol3"] = "";
}
else
{
row["newCol3"] = Convert.ToDateTime(row["applyEnd"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["replyStart"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol4"] = "";
}
else
{
row["newCol4"] = Convert.ToDateTime(row["replyStart"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["replyEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol5"] = "";
}
else
{
row["newCol5"] = Convert.ToDateTime(row["replyEnd"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["realEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol6"] = "";
}
else
{
row["newCol6"] = Convert.ToDateTime(row["realEnd"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["acceptDate_zdb"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol7"] = "";
}
else
{
row["newCol7"] = Convert.ToDateTime(row["acceptDate_zdb"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["acceptDate_zjb"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol8"] = "";
}
else
{
row["newCol8"] = Convert.ToDateTime(row["acceptDate_zjb"]).ToString("yyyy-MM-dd");
}
}
}
else
{
foreach (DataRow row in newDt.Rows)
{
if (newDic.ContainsKey(row["roleId"].ToString()))
{
row["Description"] = newDic[row["roleId"].ToString()];
}
else
{
row["Description"] = "";
} if (Convert.ToDateTime(row["applyStart"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol2"] = "";
}
else
{
row["newCol2"] = Convert.ToDateTime(row["applyStart"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["applyEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol3"] = "";
}
else
{
row["newCol3"] = Convert.ToDateTime(row["applyEnd"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["replyStart"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol4"] = "";
}
else
{
row["newCol4"] = Convert.ToDateTime(row["replyStart"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["replyEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol5"] = "";
}
else
{
row["newCol5"] = Convert.ToDateTime(row["replyEnd"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["realEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol6"] = "";
}
else
{
row["newCol6"] = Convert.ToDateTime(row["realEnd"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["acceptDate_zdb"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol7"] = "";
}
else
{
row["newCol7"] = Convert.ToDateTime(row["acceptDate_zdb"]).ToString("yyyy-MM-dd");
} if (Convert.ToDateTime(row["acceptDate_zjb"]).ToString("yyyy-MM-dd") == "1900-01-01")
{
row["newCol8"] = "";
}
else
{
row["newCol8"] = Convert.ToDateTime(row["acceptDate_zjb"]).ToString("yyyy-MM-dd");
}
}
}
return newDt;
} public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NMXT_DBConn"].ToString()))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
///********************************* 数据分页结束 ********************************
#endregion
asp.net分页功能的实现的更多相关文章
- ASP.NET--Repeater控件分页功能实现
这两天由于‘销售渠道’系统需要实现新功能,开发了三个页面,三个界面功能大致相同. 功能:分页显示特定sql查询结果,点击上一页下一页均可显示.单击某记录可以选定修改某特定字段<DropDownL ...
- Asp.net MVC3表格共用分页功能
在建立的mvc3项目中,在Razor(CSHTML)视图引擎下,数据会在表格中自动的生成,但分页没有好的控件实现,这里我们开发了设计了一个分页的模板,适合于没有数据提交和有数据提交的分页的分页. 第一 ...
- jPList – 实现灵活排序和分页功能的 jQuery 插件
jPList 是一个灵活的 jQuery 插件,可以用于任何 HTML 结构的排序,分页和筛选.它支持的数据源包括:PHP + MySQL,ASP.NET + SQL Server,PHP + SQL ...
- asp.net 分页-自己写分页控件
去年就发表过asp.net 分页-利用后台直接生成html分页 ,那种方法只是单纯的实现了分页,基本不能使用,那时就想写个自己的分页控件,无奈能力有限.最近有点时间了,就自己做出了这个分页控件.我承认 ...
- GridView使用自带分页功能时分页方式及样式PagerStyle
// 转向地址:http://www.bubuko.com/infodetail-412562.html GridView分页,使用自带分页功能,类似下面样式: 在aspx页面中,GridView上的 ...
- Repeater控件使用(含删除,分页功能)
Repeater控件使用(含删除,分页功能) 摘自:http://www.cnblogs.com/alanliu/archive/2008/02/25/914779.html 前臺代碼 <%@ ...
- 《ASP.NET1200例》<asp:DataList>分页显示图片
aspx页面代码 <asp:DataList ID="dlPhoto" runat="server" Height="137px" W ...
- aspnetpager+repeater+oracle实现分页功能
一.设计原理阐述 数据查询分页,这个功能相信大家都很熟悉,通过数据库或其它数据源进行查询操作后,将获得的数据显示到界面上,但是由于数据量太大,不能一次性完全的显示出来,就有了数据分页的需求.这个需求在 ...
- ASP.NET分页存储过程,解决搜索时丢失条件信息
存储过程: -- ============================================= -- Author: -- Create date: -- Description: 分页 ...
随机推荐
- centos7,py2和py3共存
1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用 python -V 命令查看一下是否安 ...
- 关于窗体跟随与 PointToScreen
今日写一段测试代码,实现的功能是,当一个输入框获得焦点时,某个帮助窗体跟随在其下方显示.代码很简单,本来没有什么值得一提的.但实验的时候发现,有些控件能较好地跟随,但有些不能,而且距离十分远. 主要代 ...
- 51单片机 | SPI协议与应用实例
———————————————————————————————————————————— SPI总线 - - - - - - - - - - - - - - - - - - - - - - - - - ...
- Centos下安装JDK、Maven和Git
原文地址:https://github.com/eacdy/spring-cloud-book/blob/master/3%20%E4%BD%BF%E7%94%A8Docker%E6%9E%84%E5 ...
- AngularJs学习笔记(4)——自定义指令
对指令的第一印象:它是一个自定义标签! 先来看一个简单的指令: <!doctype html> <html ng-app="myApp"> <head ...
- Mac+docker+flask
1.先要保证mac电脑安装docker 安装的话可以通过命令brew install docker 安装成功后启动,docker 然后在终端执行docker version 或者docker info ...
- CentOS-6.*安装配置SVN
安装说明 系统环境:CentOS-6.3 安装方式:yum install (源码安装容易产生版本兼容的问题) 安装软件:系统自动下载SVN软件 检查已安装版本 #检查是否安装了低版本的SVN [ro ...
- [容器]python搭建简易服务器+docker导入多个镜像shell脚本
从其他机器导出来的docker镜像,集中地放在某台上,其他的机器执行 curl xxx:8000/load_images.sh 来导入镜像,简单方便 使用python简易web服务器. (在镜像目录下 ...
- MSP430WARE++的使用3:modbus模块的调用方法
MSP430WARE++的使用3:modbus模块的调用方法 MSP430WARE是一套基于C++语言的开源的MSP430层次化软件架构,支持多种外设. 本文将介绍modbus模块驱动程序的调 ...
- python学习代码
#!/bin/python #example 1.1 #applay def function(a,b): print(a,b) def example1(): apply(function, (&q ...