让数据分页显示

这两个类比较有用,先摘下来存一下

封装数据绑定控件(如 DataGrid、GridView、DetailsView 和 FormView)的与分页相关的属性,以允许该控件执行分页操作。无法继承此类。

名称 说明
 AllowCustomPaging获取或设置一个值,指示是否在数据绑定控件中启用自定义分页。
 AllowPaging 获取或设置一个值,指示是否在数据绑定控件中启用分页。
 AllowServerPaging 获取或设置一个值,指示是否启用服务器端分页。
 Count 获取要从数据源使用的项数。
 CurrentPageIndex 获取或设置当前页的索引。
 DataSource 获取或设置数据源。
 DataSourceCount 获取数据源中的项数。
 FirstIndexInPage获取页面中显示的首条记录的索引。
 IsCustomPagingEnabled 获取一个值,该值指示是否启用自定义分页。
 IsFirstPage 获取一个值,该值指示当前页是否是首页。
 IsLastPage 获取一个值,该值指示当前页是否是最后一页。
 IsPagingEnabled获取一个值,该值指示是否启用分页。
 IsReadOnly 获取一个值,该值指示数据源是否是只读的。
 IsServerPagingEnabled 获取一个值,指示是否启用服务器端分页支持。
 IsSynchronized 获取一个值,该值指示是否同步对数据源的访问(线程安全)。
 PageCount 获取显示数据源中的所有项所需要的总页数。
 PageSize 获取或设置要在单页上显示的项数。
 SyncRoot 获取可用于同步集合访问的对象。
 VirtualCount获取或设置在使用自定义分页时数据源中的实际项数。


None.gif   private  PagedDataSource pds()
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        
string connstring = ConfigurationManager.ConnectionStrings["Pubs"].ConnectionString;
InBlock.gif        
//声明一个字符串,后面随时可以用
InBlock.gif
        SqlConnection con = new SqlConnection(connstring);
InBlock.gif        
//初始化连接
InBlock.gif
        SqlDataAdapter sda = new SqlDataAdapter("select * from authors", con);
InBlock.gif        
//初始化一个SqlDataAdapter,并给出查询语句
InBlock.gif
        DataSet ds = new DataSet();
InBlock.gif        
//初始化一个DataSet
InBlock.gif
        sda.Fill(ds, "name");
InBlock.gif        
//将上面查询到的数据填充到name表中
InBlock.gif
        SqlDataAdapter sda2 = new SqlDataAdapter("select * from titleauthor", con);
InBlock.gif        
//同上
InBlock.gif
        sda2.Fill(ds, "title");
InBlock.gif        
//同上
InBlock.gif
        ds.Relations.Add("myrela", ds.Tables["name"].Columns["au_id"], ds.Tables["title"].Columns["au_id"]);
InBlock.gif        
//为上面建立的两个表创建一个关系,指明父列和子列的名称并为他们的关系命名,前面将会用到
InBlock.gif

InBlock.gif        PagedDataSource pds 
= new PagedDataSource();
InBlock.gif        
//初始化一个PagedDataSource,允许控件分页
InBlock.gif
        pds.DataSource = ds.Tables["name"].DefaultView;
InBlock.gif        
//将上面的ds转换成标准数据视图
InBlock.gif
        pds.AllowPaging = true;
InBlock.gif        
//允许分页
InBlock.gif
        pds.PageSize = 5;
InBlock.gif        
//每页大小为5  
InBlock.gif
        pds.CurrentPageIndex = Convert.ToInt32(Request.QueryString["page"]);
InBlock.gif        
//设置当前页
InBlock.gif
        return pds;
InBlock.gif        
//将处理完毕的pds对象发出去
ExpandedBlockEnd.gif
    }

None.gif    
protected   void  Repeater1_ItemDataBound( object  sender, RepeaterItemEventArgs e)
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        
if (e.Item.ItemType == ListItemType.Footer)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{//判断当前项是页脚模板
InBlock.gif
            int n = pds().PageCount;//将分页总数赋给变量n
InBlock.gif
            int i = pds().CurrentPageIndex;//将当前分页码赋给i
InBlock.gif

InBlock.gif            Label lblpc 
= (Label)e.Item.FindControl("lblpc");
InBlock.gif            lblpc.Text 
= n.ToString();
InBlock.gif            
//找到lblpc这个Label,将总页码赋给他
InBlock.gif
            Label lblp = (Label)e.Item.FindControl("lblp");            
InBlock.gif            lblp.Text 
= Convert.ToString(pds().CurrentPageIndex + 1);            
InBlock.gif            
//找到lblp这个Label,将当前页码赋给他,但是注意,因为页码从0开始,这里要直观的话就得加1
InBlock.gif
            HyperLink hlfir = (HyperLink)e.Item.FindControl("hlfir");
InBlock.gif            hlfir.NavigateUrl 
= "?page=0";
InBlock.gif            HyperLink hlla 
= (HyperLink)e.Item.FindControl("hlla");
InBlock.gif            hlla.NavigateUrl 
= "?page=" + Convert.ToInt32(n - 1);
InBlock.gif            
//找到表示最前页和末页的Label,为他们的NavigateUrl属性赋为第0页和最大页码减1
InBlock.gif
            HyperLink hlp = (HyperLink)e.Item.FindControl("hlp");
InBlock.gif            HyperLink hln 
= (HyperLink)e.Item.FindControl("hln");
InBlock.gif            
//找到表示上页和下页这两个控件
InBlock.gif
            if (i <= 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{//如果当前页已经是第0页
InBlock.gif
                hlp.Enabled = false;
InBlock.gif                hlfir.Enabled 
= false;
InBlock.gif                hln.Enabled 
= true;
ExpandedSubBlockEnd.gif            }

InBlock.gif            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                hlp.NavigateUrl 
= "?page=" + Convert.ToInt32(i - 1);
ExpandedSubBlockEnd.gif            }

InBlock.gif            
if (i > n-2 )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{//如果当前项已经是最末页
InBlock.gif
                hln.Enabled = false;
InBlock.gif                hlla.Enabled 
= false;
InBlock.gif                hlp.Enabled 
= true;
ExpandedSubBlockEnd.gif            }

InBlock.gif            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                hln.NavigateUrl 
= "?page=" + Convert.ToInt32(i + 1);
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

ExpandedBlockEnd.gif    }

转载于:https://www.cnblogs.com/mgod/archive/2007/04/07/703688.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值