1. 效果图:
     

  1.  
  2. 代码:
    static int PageSize = 30;
  3.  
  4. #region 分页部分代码
  5. //*********************************** 数据分页 ********************************
  6. protected void FirstPage_Click1(object sender, EventArgs e)
  7. {
  8. int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
  9. DataTable dt = GetListByPage(ViewState["ssearchCondition"].ToString(),,PageSize);
  10. int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize;
  11. int CurrentPageNum;
  12. if (PageCount == )
  13. {
  14. CurrentPageNum = ;
  15. }
  16. else
  17. {
  18. CurrentPageNum = ;
  19. }
  20. CurrentPage.Text = (CurrentPageNum).ToString();
  21. TotalPageCount.Text = PageCount.ToString();
  22. EnableJudger();
  23.  
  24. ViewState["PageCount"] = PageCount;
  25. ViewState["CurrentPageNum"] = CurrentPageNum;
  26.  
  27. int rowNum = ;
  28. if (int.Parse(ViewState["PageCount"].ToString()) > )
  29. {
  30. rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
  31. }
  32. dt.Columns.Add(new DataColumn("rowN"));
  33. for (int i = ; i < dt.Rows.Count; i++)
  34. {
  35. dt.Rows[i]["rowN"] = rowNum++;
  36. }
  37.  
  38. Repeater1.DataSource = dt;
  39. Repeater1.DataBind();
  40. }
  41.  
  42. protected void PrePage_Click(object sender, EventArgs e)
  43. {
  44. int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
  45. int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize;
  46. int CurrentPageNum = (int)ViewState["CurrentPageNum"];
  47. DataTable dt = GetListByPage(ViewState["ssearchCondition"].ToString(), PageSize * (CurrentPageNum - ) + , PageSize * (CurrentPageNum - ) + PageSize);
  48. CurrentPageNum -= ;
  49. CurrentPage.Text = (CurrentPageNum).ToString();
  50. TotalPageCount.Text = PageCount.ToString();
  51. EnableJudger();
  52.  
  53. ViewState["PageCount"] = PageCount;
  54. ViewState["CurrentPageNum"] = CurrentPageNum;
  55.  
  56. int rowNum = ;
  57. if (int.Parse(ViewState["PageCount"].ToString()) > )
  58. {
  59. rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
  60. }
  61. dt.Columns.Add(new DataColumn("rowN"));
  62. for (int i = ; i < dt.Rows.Count; i++)
  63. {
  64. dt.Rows[i]["rowN"] = rowNum++;
  65. }
  66.  
  67. Repeater1.DataSource = dt;
  68. Repeater1.DataBind();
  69. }
  70.  
  71. protected void NextPage_Click(object sender, EventArgs e)
  72. {
  73. int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
  74. int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize;
  75. int CurrentPageNum = (int)ViewState["CurrentPageNum"];
  76. DataTable dt = GetListByPage(ViewState["ssearchCondition"].ToString(), PageSize * (CurrentPageNum) + , PageSize * (CurrentPageNum) + PageSize);
  77. CurrentPageNum += ;
  78. CurrentPage.Text = (CurrentPageNum).ToString();
  79. TotalPageCount.Text = PageCount.ToString();
  80. EnableJudger();
  81.  
  82. ViewState["PageCount"] = PageCount;
  83. ViewState["CurrentPageNum"] = CurrentPageNum;
  84.  
  85. int rowNum = ;
  86. if (int.Parse(ViewState["PageCount"].ToString()) > )
  87. {
  88. rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
  89. }
  90. dt.Columns.Add(new DataColumn("rowN"));
  91. for (int i = ; i < dt.Rows.Count; i++)
  92. {
  93. dt.Rows[i]["rowN"] = rowNum++;
  94. }
  95.  
  96. Repeater1.DataSource = dt;
  97. Repeater1.DataBind();
  98. }
  99.  
  100. protected void LastPage_Click(object sender, EventArgs e)
  101. {
  102. int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
  103. int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize;
  104.  
  105. DataTable dt = GetListByPage(ViewState["ssearchCondition"].ToString(), PageSize * (PageCount - ) + , PageSize * (PageCount - ) + PageSize);
  106. int CurrentPageNum = PageCount;
  107. CurrentPage.Text = PageCount.ToString();
  108. TotalPageCount.Text = PageCount.ToString();
  109. EnableJudger();
  110.  
  111. ViewState["PageCount"] = PageCount;
  112. ViewState["CurrentPageNum"] = CurrentPageNum;
  113.  
  114. int rowNum = ;
  115. if (int.Parse(ViewState["PageCount"].ToString()) > )
  116. {
  117. rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
  118. }
  119. dt.Columns.Add(new DataColumn("rowN"));
  120. for (int i = ; i < dt.Rows.Count; i++)
  121. {
  122. dt.Rows[i]["rowN"] = rowNum++;
  123. }
  124.  
  125. Repeater1.DataSource = dt;
  126. Repeater1.DataBind();
  127. }
  128.  
  129. protected void lbtnGoPage_Click(object sender, EventArgs e)
  130. {
  131. if (string.IsNullOrEmpty(txtGoPage.Text))
  132. {
  133. return;
  134. }
  135. int gotoPageNum = int.Parse(txtGoPage.Text);
  136. int RecordCount = GetRecordCount(ViewState["ssearchCondition"].ToString()); //获取记录条数
  137. DataTable dt = new DataTable();
  138. int CurrentPageNum = gotoPageNum;
  139. int PageCount = RecordCount % PageSize > ? RecordCount / PageSize + : RecordCount / PageSize;
  140. if (gotoPageNum < || gotoPageNum > PageCount)
  141. {
  142. }
  143. else
  144. {
  145. dt = GetListByPage(ViewState["ssearchCondition"].ToString(), PageSize * (CurrentPageNum - ) + , PageSize * (CurrentPageNum - ) + PageSize);
  146. CurrentPage.Text = (gotoPageNum).ToString();
  147. TotalPageCount.Text = PageCount.ToString();
  148. EnableJudger();
  149.  
  150. ViewState["PageCount"] = PageCount;
  151. ViewState["CurrentPageNum"] = CurrentPageNum;
  152.  
  153. int rowNum = ;
  154. if (int.Parse(ViewState["PageCount"].ToString()) > )
  155. {
  156. rowNum += (int.Parse(ViewState["CurrentPageNum"].ToString()) - ) * PageSize;
  157. }
  158. dt.Columns.Add(new DataColumn("rowN"));
  159. for (int i = ; i < dt.Rows.Count; i++)
  160. {
  161. dt.Rows[i]["rowN"] = rowNum++;
  162. }
  163.  
  164. Repeater1.DataSource = dt;
  165. Repeater1.DataBind();
  166. }
  167. }
  168. private void EnableJudger()
  169. {
  170. //1. 没有数据
  171. if (int.Parse(TotalPageCount.Text) <= )
  172. {
  173. FirstPage.Enabled = false;
  174. PrePage.Enabled = false;
  175. NextPage.Enabled = false;
  176. LastPage.Enabled = false;
  177. lbtnGoPage.Enabled = false;
  178. CurrentPage.Text = "";
  179. return;
  180. }
  181. //2. 只有一页数据
  182. if (int.Parse(CurrentPage.Text) == && int.Parse(TotalPageCount.Text) == )
  183. {
  184. FirstPage.Enabled = false;
  185. PrePage.Enabled = false;
  186. NextPage.Enabled = false;
  187. LastPage.Enabled = false;
  188. lbtnGoPage.Enabled = false;
  189. return;
  190. }
  191. //3. 当前为第一页,总页数大于1
  192. if (int.Parse(CurrentPage.Text) == && int.Parse(TotalPageCount.Text) > )
  193. {
  194. FirstPage.Enabled = false;
  195. PrePage.Enabled = false;
  196. NextPage.Enabled = true;
  197. LastPage.Enabled = true;
  198. lbtnGoPage.Enabled = true;
  199. return;
  200. }
  201. //4. 当前页为中间页
  202. if (int.Parse(CurrentPage.Text) > && int.Parse(CurrentPage.Text) < int.Parse(TotalPageCount.Text))
  203. {
  204. FirstPage.Enabled = true;
  205. PrePage.Enabled = true;
  206. NextPage.Enabled = true;
  207. LastPage.Enabled = true;
  208. lbtnGoPage.Enabled = true;
  209. return;
  210. }
  211. //5.当前页为最后一页,总页数大于1
  212. if (int.Parse(CurrentPage.Text) == int.Parse(TotalPageCount.Text) && int.Parse(CurrentPage.Text) > )
  213. {
  214. FirstPage.Enabled = true;
  215. PrePage.Enabled = true;
  216. NextPage.Enabled = false;
  217. LastPage.Enabled = false;
  218. return;
  219. }
  220.  
  221. }
  222.  
  223. /// <summary>
  224. /// 获取记录总数
  225. /// </summary>
  226. public int GetRecordCount(string strWhere)
  227. {
  228. StringBuilder strSql = new StringBuilder();
  229. strSql.Append("select count(1) from tb_ProjectRegister");
  230. if (strWhere.Trim() != "")
  231. {
  232. strSql.Append(" where " + strWhere);
  233. }
  234. object obj = GetSingle(strSql.ToString());
  235. if (obj == null)
  236. {
  237. return ;
  238. }
  239. else
  240. {
  241. return Convert.ToInt32(obj);
  242. }
  243. }
  244. public static object GetSingle(string SQLString)
  245. {
  246. using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NMXT_DBConn"].ToString()))
  247. {
  248. using (SqlCommand cmd = new SqlCommand(SQLString, connection))
  249. {
  250. try
  251. {
  252. connection.Open();
  253. object obj = cmd.ExecuteScalar();
  254. if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
  255. {
  256. return null;
  257. }
  258. else
  259. {
  260. return obj;
  261. }
  262. }
  263. catch (System.Data.SqlClient.SqlException e)
  264. {
  265. connection.Close();
  266. throw e;
  267. }
  268. }
  269. }
  270. }
  271. /// <summary>
  272. /// 分页获取数据列表
  273. /// </summary>
  274. public DataTable GetListByPage(string strWhere, int startIndex, int endIndex)
  275. {
  276. StringBuilder strSql = new StringBuilder();
  277. strSql.Append("SELECT * FROM ( ");
  278. strSql.Append(" SELECT ROW_NUMBER() OVER (");
  279. strSql.Append("order by T.roleId asc,T.replyEnd desc");
  280. strSql.Append(")AS Row, T.* from tb_ProjectRegister T ");
  281. if (!string.IsNullOrEmpty(strWhere.Trim()))
  282. {
  283. strSql.Append(" WHERE " + strWhere);
  284. }
  285. strSql.Append(" ) TT");
  286. strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
  287. DataSet ds = Query(strSql.ToString());
  288.  
  289. DataTable newDt = ds.Tables[].Copy();
  290. DataColumn newCol1 = new DataColumn("Description");
  291. DataColumn newCol2 = new DataColumn("newCol2");
  292. DataColumn newCol3 = new DataColumn("newCol3");
  293. DataColumn newCol4 = new DataColumn("newCol4");
  294. DataColumn newCol5 = new DataColumn("newCol5");
  295. DataColumn newCol6 = new DataColumn("newCol6");
  296. DataColumn newCol7 = new DataColumn("newCol7");
  297. DataColumn newCol8 = new DataColumn("newCol8");
  298. newDt.Columns.Add(newCol1);
  299. newDt.Columns.Add(newCol2);
  300. newDt.Columns.Add(newCol3);
  301. newDt.Columns.Add(newCol4);
  302. newDt.Columns.Add(newCol5);
  303. newDt.Columns.Add(newCol6);
  304. newDt.Columns.Add(newCol7);
  305. newDt.Columns.Add(newCol8);
  306. Dictionary<string, string> newDic = GetRoleDescriptions();
  307. if (newDic == null)
  308. {
  309. foreach (DataRow row in newDt.Rows)
  310. {
  311. row["Description"] = "";
  312.  
  313. if (Convert.ToDateTime(row["applyStart"]).ToString("yyyy-MM-dd") == "1900-01-01")
  314. {
  315. row["newCol2"] = "";
  316. }
  317. else
  318. {
  319. row["newCol2"] = Convert.ToDateTime(row["applyStart"]).ToString("yyyy-MM-dd");
  320. }
  321.  
  322. if (Convert.ToDateTime(row["applyEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
  323. {
  324. row["newCol3"] = "";
  325. }
  326. else
  327. {
  328. row["newCol3"] = Convert.ToDateTime(row["applyEnd"]).ToString("yyyy-MM-dd");
  329. }
  330.  
  331. if (Convert.ToDateTime(row["replyStart"]).ToString("yyyy-MM-dd") == "1900-01-01")
  332. {
  333. row["newCol4"] = "";
  334. }
  335. else
  336. {
  337. row["newCol4"] = Convert.ToDateTime(row["replyStart"]).ToString("yyyy-MM-dd");
  338. }
  339.  
  340. if (Convert.ToDateTime(row["replyEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
  341. {
  342. row["newCol5"] = "";
  343. }
  344. else
  345. {
  346. row["newCol5"] = Convert.ToDateTime(row["replyEnd"]).ToString("yyyy-MM-dd");
  347. }
  348.  
  349. if (Convert.ToDateTime(row["realEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
  350. {
  351. row["newCol6"] = "";
  352. }
  353. else
  354. {
  355. row["newCol6"] = Convert.ToDateTime(row["realEnd"]).ToString("yyyy-MM-dd");
  356. }
  357.  
  358. if (Convert.ToDateTime(row["acceptDate_zdb"]).ToString("yyyy-MM-dd") == "1900-01-01")
  359. {
  360. row["newCol7"] = "";
  361. }
  362. else
  363. {
  364. row["newCol7"] = Convert.ToDateTime(row["acceptDate_zdb"]).ToString("yyyy-MM-dd");
  365. }
  366.  
  367. if (Convert.ToDateTime(row["acceptDate_zjb"]).ToString("yyyy-MM-dd") == "1900-01-01")
  368. {
  369. row["newCol8"] = "";
  370. }
  371. else
  372. {
  373. row["newCol8"] = Convert.ToDateTime(row["acceptDate_zjb"]).ToString("yyyy-MM-dd");
  374. }
  375. }
  376. }
  377. else
  378. {
  379. foreach (DataRow row in newDt.Rows)
  380. {
  381. if (newDic.ContainsKey(row["roleId"].ToString()))
  382. {
  383. row["Description"] = newDic[row["roleId"].ToString()];
  384. }
  385. else
  386. {
  387. row["Description"] = "";
  388. }
  389.  
  390. if (Convert.ToDateTime(row["applyStart"]).ToString("yyyy-MM-dd") == "1900-01-01")
  391. {
  392. row["newCol2"] = "";
  393. }
  394. else
  395. {
  396. row["newCol2"] = Convert.ToDateTime(row["applyStart"]).ToString("yyyy-MM-dd");
  397. }
  398.  
  399. if (Convert.ToDateTime(row["applyEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
  400. {
  401. row["newCol3"] = "";
  402. }
  403. else
  404. {
  405. row["newCol3"] = Convert.ToDateTime(row["applyEnd"]).ToString("yyyy-MM-dd");
  406. }
  407.  
  408. if (Convert.ToDateTime(row["replyStart"]).ToString("yyyy-MM-dd") == "1900-01-01")
  409. {
  410. row["newCol4"] = "";
  411. }
  412. else
  413. {
  414. row["newCol4"] = Convert.ToDateTime(row["replyStart"]).ToString("yyyy-MM-dd");
  415. }
  416.  
  417. if (Convert.ToDateTime(row["replyEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
  418. {
  419. row["newCol5"] = "";
  420. }
  421. else
  422. {
  423. row["newCol5"] = Convert.ToDateTime(row["replyEnd"]).ToString("yyyy-MM-dd");
  424. }
  425.  
  426. if (Convert.ToDateTime(row["realEnd"]).ToString("yyyy-MM-dd") == "1900-01-01")
  427. {
  428. row["newCol6"] = "";
  429. }
  430. else
  431. {
  432. row["newCol6"] = Convert.ToDateTime(row["realEnd"]).ToString("yyyy-MM-dd");
  433. }
  434.  
  435. if (Convert.ToDateTime(row["acceptDate_zdb"]).ToString("yyyy-MM-dd") == "1900-01-01")
  436. {
  437. row["newCol7"] = "";
  438. }
  439. else
  440. {
  441. row["newCol7"] = Convert.ToDateTime(row["acceptDate_zdb"]).ToString("yyyy-MM-dd");
  442. }
  443.  
  444. if (Convert.ToDateTime(row["acceptDate_zjb"]).ToString("yyyy-MM-dd") == "1900-01-01")
  445. {
  446. row["newCol8"] = "";
  447. }
  448. else
  449. {
  450. row["newCol8"] = Convert.ToDateTime(row["acceptDate_zjb"]).ToString("yyyy-MM-dd");
  451. }
  452. }
  453. }
  454. return newDt;
  455. }
  456.  
  457. public static DataSet Query(string SQLString)
  458. {
  459. using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["NMXT_DBConn"].ToString()))
  460. {
  461. DataSet ds = new DataSet();
  462. try
  463. {
  464. connection.Open();
  465. SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
  466. command.Fill(ds, "ds");
  467. }
  468. catch (System.Data.SqlClient.SqlException ex)
  469. {
  470. throw new Exception(ex.Message);
  471. }
  472. return ds;
  473. }
  474. }
  475. ///********************************* 数据分页结束 ********************************
  476. #endregion

asp.net分页功能的实现的更多相关文章

  1. ASP.NET--Repeater控件分页功能实现

    这两天由于‘销售渠道’系统需要实现新功能,开发了三个页面,三个界面功能大致相同. 功能:分页显示特定sql查询结果,点击上一页下一页均可显示.单击某记录可以选定修改某特定字段<DropDownL ...

  2. Asp.net MVC3表格共用分页功能

    在建立的mvc3项目中,在Razor(CSHTML)视图引擎下,数据会在表格中自动的生成,但分页没有好的控件实现,这里我们开发了设计了一个分页的模板,适合于没有数据提交和有数据提交的分页的分页. 第一 ...

  3. jPList – 实现灵活排序和分页功能的 jQuery 插件

    jPList 是一个灵活的 jQuery 插件,可以用于任何 HTML 结构的排序,分页和筛选.它支持的数据源包括:PHP + MySQL,ASP.NET + SQL Server,PHP + SQL ...

  4. asp.net 分页-自己写分页控件

    去年就发表过asp.net 分页-利用后台直接生成html分页 ,那种方法只是单纯的实现了分页,基本不能使用,那时就想写个自己的分页控件,无奈能力有限.最近有点时间了,就自己做出了这个分页控件.我承认 ...

  5. GridView使用自带分页功能时分页方式及样式PagerStyle

    // 转向地址:http://www.bubuko.com/infodetail-412562.html GridView分页,使用自带分页功能,类似下面样式: 在aspx页面中,GridView上的 ...

  6. Repeater控件使用(含删除,分页功能)

    Repeater控件使用(含删除,分页功能) 摘自:http://www.cnblogs.com/alanliu/archive/2008/02/25/914779.html 前臺代碼 <%@ ...

  7. 《ASP.NET1200例》<asp:DataList>分页显示图片

    aspx页面代码 <asp:DataList ID="dlPhoto" runat="server" Height="137px" W ...

  8. aspnetpager+repeater+oracle实现分页功能

    一.设计原理阐述 数据查询分页,这个功能相信大家都很熟悉,通过数据库或其它数据源进行查询操作后,将获得的数据显示到界面上,但是由于数据量太大,不能一次性完全的显示出来,就有了数据分页的需求.这个需求在 ...

  9. ASP.NET分页存储过程,解决搜索时丢失条件信息

    存储过程: -- ============================================= -- Author: -- Create date: -- Description: 分页 ...

随机推荐

  1. 使用Python发送电子邮件

    使用python发送邮件并不难,这里使用的是SMTP协议. Python标准库中内置了smtplib,使用它发送邮件只需提供邮件内容与发送者的凭证即可. 代码如下: # coding:utf-8 im ...

  2. iOS怎样找到自己的沙盒

    iOS怎样找到自己的沙盒 在ios开发我们会用到沙盒,因为自己对沙盒理解的不够,所以找不到沙盒文件在哪里,当然要知道路径了 比如我的路径 NSString* cachepath = [NSHomeDi ...

  3. antd-design LocaleProvider国际化

    1.LocaleProvider 使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效. import { LocaleProvider } from 'antd'; imp ...

  4. C-C Primer Plus阅读笔记

    常用头: stdio.h string.h inttypes.h limits.h float.h 1.打印short.long.long long和unsigned #include <std ...

  5. android-异步消息处理机制初步

    Android的异步消息处理主要由4个部分组成,Message.Handler.MessageQueue和Looper Message:在线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程 ...

  6. 使用Nginx的proxy_cache缓存功能取代Squid(转)

    Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...

  7. Centos7使用LVM扩容磁盘(测试成功)

    1.新增加了一块200G大小的磁盘/dev/sdb fdisk -l 2. pvcreate /dev/sdb 3. pvdisplay 查看添加成功的/dev/sdb的大小为200G 4. vgex ...

  8. linux命令ulimit 系统限制你打开一些资源数

    #ulimit -a 查看系统的一些限制,比如在做并发测试时ab命令的请求书不能超过 1024个. 要更改 #ulimit -n 10240

  9. Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结

    Atitit. 木马病毒的外部class自动加载机制------加载class的方法总结 Atitit.java load class methods 1. 动态加载jar文件和class文件. 1 ...

  10. Avira Free Antivirus 小红伞免费杀毒软件广告去除工具

    Avira Free Antivirus 小红伞免费杀毒软件经常跳出广告, 用起来比较烦, 这里提供一个广告去除的免费小工具. 原理就是用组策略来阻止广告的跳出, 网上到处都是. 一键傻瓜式去除, 也 ...