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: 分页 ...
随机推荐
- 使用Python发送电子邮件
使用python发送邮件并不难,这里使用的是SMTP协议. Python标准库中内置了smtplib,使用它发送邮件只需提供邮件内容与发送者的凭证即可. 代码如下: # coding:utf-8 im ...
- iOS怎样找到自己的沙盒
iOS怎样找到自己的沙盒 在ios开发我们会用到沙盒,因为自己对沙盒理解的不够,所以找不到沙盒文件在哪里,当然要知道路径了 比如我的路径 NSString* cachepath = [NSHomeDi ...
- antd-design LocaleProvider国际化
1.LocaleProvider 使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效. import { LocaleProvider } from 'antd'; imp ...
- C-C Primer Plus阅读笔记
常用头: stdio.h string.h inttypes.h limits.h float.h 1.打印short.long.long long和unsigned #include <std ...
- android-异步消息处理机制初步
Android的异步消息处理主要由4个部分组成,Message.Handler.MessageQueue和Looper Message:在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程 ...
- 使用Nginx的proxy_cache缓存功能取代Squid(转)
Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...
- Centos7使用LVM扩容磁盘(测试成功)
1.新增加了一块200G大小的磁盘/dev/sdb fdisk -l 2. pvcreate /dev/sdb 3. pvdisplay 查看添加成功的/dev/sdb的大小为200G 4. vgex ...
- linux命令ulimit 系统限制你打开一些资源数
#ulimit -a 查看系统的一些限制,比如在做并发测试时ab命令的请求书不能超过 1024个. 要更改 #ulimit -n 10240
- Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结
Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结 Atitit.java load class methods 1. 动态加载jar文件和class文件. 1 ...
- Avira Free Antivirus 小红伞免费杀毒软件广告去除工具
Avira Free Antivirus 小红伞免费杀毒软件经常跳出广告, 用起来比较烦, 这里提供一个广告去除的免费小工具. 原理就是用组策略来阻止广告的跳出, 网上到处都是. 一键傻瓜式去除, 也 ...