惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Check Point Blog
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
IT之家
IT之家
月光博客
月光博客
U
Unit 42
K
Kaspersky official blog
T
Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
云风的 BLOG
云风的 BLOG
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
Engineering at Meta
Engineering at Meta
Recorded Future
Recorded Future
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security @ Cisco Blogs
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
Security Archives - TechRepublic
Security Archives - TechRepublic
Webroot Blog
Webroot Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Schneier on Security
S
Secure Thoughts
The Register - Security
The Register - Security
B
Blog RSS Feed
The Last Watchdog
The Last Watchdog
P
Palo Alto Networks Blog
爱范儿
爱范儿
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
C
Cisco Blogs
Spread Privacy
Spread Privacy
F
Full Disclosure
博客园 - 聂微东
T
The Blog of Author Tim Ferriss

博客园 - 清虚真人

关于flask-sqlalchemy的用法研究 [原]跟我学silverlight系列教程[1]—wpf/silverlight体系架构和运行机制 [原]跟我学silverlight系列教程 sql2005 数据库没有完全关闭,无法重新生成日志 IIS中网站出错 javascript获取滚动条位置 - 清虚真人 - 博客园 .Net framework [转载]My97DatePicker在Frame中无法打开站点 输出datagrid的内容到excel - 清虚真人 - 博客园 sql select的时候按特定的顺序排序 vs2008 安装Silverlight tools遇到的崩溃问题。。。 关于.NET中的Server push技术 .net 几种序列化类的比较 asp.net ajax实现(—):Jquery+Json WPF中BitMapEffect的性能问题 asp.net页面执行机制 关于服务器端控件的attributes属性的奇怪问题 关于使用javascript+asp.net实现多文件上传的若干问题 正则表达式相关教程
我写的PageDataSurce分页的
清虚真人 · 2008-04-10 · via 博客园 - 清虚真人

PageDataSurce分页因为Http无状态的特性,所以无法保存pagedatasource状态值,所以每次请求都必须重新来指定CurrentPage的值...

一般是用QueryString来传递当前页的值。。。

我这个没用这种方法,我的方法是把PageDataSource保存在Cache中,所以就一直保存了它的装态。不需要再用QueryString传递了....

 1<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
 2
 3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 4
 5<html xmlns="http://www.w3.org/1999/xhtml">
 6<head runat="server">
 7    <title>无标题页</title>
 8</head>
 9<body>
10    <form id="form1" runat="server">
11    <div>
12      <table>
13        <asp:Repeater ID="Repeater1" runat="server">
14            <ItemTemplate>
15
16                    <tr>
17                        <td><%#DataBinder.Eval(Container.DataItem,"Name")%></td>
18                        <td><%#DataBinder.Eval(Container.DataItem,"Tel")%></td>
19                        <td><%#DataBinder.Eval(Container.DataItem,"Description")%></td>
20                    </tr>
21            </ItemTemplate>
22        </asp:Repeater>
23       </table>
24        <asp:Button ID="Button1" runat="server" CommandArgument="1" CommandName="Btn" OnClick="Btn_OnClick" Text="首页" />
25        <asp:Button ID="Button2" runat="server" CommandArgument="2" CommandName="Btn" OnClick="Btn_OnClick" Text="上一页" />
26        <asp:Button ID="Button3" runat="server" CommandArgument="3" CommandName="Btn" OnClick="Btn_OnClick" Text="下一页" />
27        <asp:Button ID="Button4" runat="server" CommandArgument="4" CommandName="Btn" OnClick="Btn_OnClick" Text="末页" />
28    </div>
29    </form>
30</body>
31</html>
32

后台代码:

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page 
{
    
private PagedDataSource pd;
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            DataTable dt 
= new DataTable();
            dt.Columns.Add(
"ID", Type.GetType("System.String"));
            dt.Columns.Add(
"Name", Type.GetType("System.String"));
            dt.Columns.Add(
"Tel", Type.GetType("System.String"));
            dt.Columns.Add(
"Description", Type.GetType("System.String"));
            dt.Rows.Add(
"1""ddd""123456""个人人人人");
            dt.Rows.Add(
"2""ddd""56565656""提供方多个");
            dt.Rows.Add(
"3""qqq""565656""大师父是非得失");
            dt.Rows.Add(
"4""www""788888""上的发生地方上的");
            dt.Rows.Add(
"5""qas""33333""双方上的发生");
            dt.Rows.Add(
"6""fff""222222""但是发的十分上的");
            dt.Rows.Add(
"7""ccc""33333""双方都是非");
            InitalDataSourece(dt);
        }

    }


    
private void InitalDataSourece(DataTable dt)
    
{
        pd 
= new PagedDataSource();
        pd.DataSource 
= dt.DefaultView ;
        pd.PageSize 
= 2;
        pd.AllowPaging 
= true;
        Cache[
"Pd"= pd;
        DataBind();
    }


    
private void DataBind()
    
{
        Repeater1.DataSource 
= pd;
        Repeater1.DataBind();
    }


    
protected void Btn_OnClick(object sender, EventArgs e)
    
{
        Button btn 
= (Button)sender;
        pd 
= (PagedDataSource)Cache["Pd"];
        
if (btn.CommandArgument == "1")
        
{
            pd.CurrentPageIndex 
= 0;
        }

        
else if (btn.CommandArgument == "2")
        
{
            
if (pd.IsFirstPage)
            
{
                pd.CurrentPageIndex 
= 0;
            }

            
else
            
{
                pd.CurrentPageIndex 
-= 1;
            }
;
        }

        
else if (btn.CommandArgument == "3")
        
{
            
if (pd.IsLastPage)
            
{
                pd.CurrentPageIndex 
= pd.PageCount - 1;
            }

            
else
            
{
                pd.CurrentPageIndex 
+= 1;
            }

        }

        
else
        
{
            pd.CurrentPageIndex 
= pd.PageCount - 1;
        }

        DataBind();
    }


}