翻页导航控件

翻页导航控件

这个控件称之为“无源虚拟分页控件”因为它是不需要数据源的,只起到虚拟选择页
号与定位的作用,只需要指定其TotalRecord(记录总数)就可以帮你虚拟分页了.
  控件的按钮支持文字和图片俩种格式,可以设定其版页最大显示数,每页显示记录数,以及鼠标
放在按钮上的提示信息.
  由于是无源虚拟分页,所以控件必须给定TotalRecord(记录总数)以及实现ChangePageClick事件
那么记录的总数怎么出来呢,那当然是通过存储过程来取得了,这个存储过程必须是每次取得的数据
是当前展示所需要的(也就是说取当前页的记录),如果一股脑儿把所有满足条件的数据全取出来那就没有意义了,所以呢,要实现分页这个存储过程也是很重要的。
  下面是存储过程

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
--
 Author:        <不懂>
--
 Create date: <2006-11-8>
--
 Description:    <分页存储过程>
--
 =============================================
ALTER PROCEDURE [dbo].[P_PageRecord]
(
@intPageSize int=10,@intPageNum int=1,@strWhere nvarchar(200 ))
AS

BEGIN
    
SET NOCOUNT ON ;

    
if(@intPageSize<2 or @intPageSize>100
)
        
set @intPageSize=10

    
if(@intPageNum<1 )
        
set @intPageNum=1
;
    
WITH
 Search(OrderID,CustomerID,EmployeeID,OrderDate,RequiredDate,ShippedDate , ShipVia ,Freight ,ShipName,RowNum)
           
as

              (
              
select  OrderID ,
                     CustomerID,
                     EmployeeID ,
                     OrderDate,
                     RequiredDate,
                     ShippedDate ,
                     ShipVia ,
                     Freight ,
                     ShipName,
                     ROW_NUMBER() 
over (order by OrderID DESCas
 RowNum
              
from Orders where ShipAddress like N'%'+@strWhere+N'%'

              )

    
SELECT OrderID,CustomerID,EmployeeID,OrderDate,RequiredDate,ShippedDate , ShipVia ,Freight ,ShipName,(select count(*from Search) as Rows from  Search
    
where RowNum>@intPageSize*(@intPageNum-1and RowNum<=@intPageSize*@intPageNum

   
SET NOCOUNT OFF ;
   
return @@ERROR

END

   这个分页控件是个完全自定义的控件没有UI的,继承于WebControl,为了响应事件还得继承IPostBackEventHandler,下面就是完整的实现代码。 

using  System;
using
 System.Collections.Generic;
using
 System.Web.UI;
using
 System.Web.UI.WebControls;
using
 System.Web.UI.HtmlControls;
using
 System.ComponentModel;
using
 System.Text;

[assembly: TagPrefix(
"SmbComponent","BG"
)]
namespace
 SmbComponent
{
    
/// <summary>
    
/// 作者:不懂
    
///
 日期:2006-11-8
    
/// </summary>

    [DefaultProperty("TotalRecord"), DefaultEvent("ChangePageClick"), ToolboxData("<{0}:PageList runat=server></{0}:PageList>")]
    
public class
 PageList:WebControl,IPostBackEventHandler
    
{
        
公用变量


        
导航图片路径及相关变量

        
枚举

        
属性

        
定义事件

        
构造涵数

        
重写的方法

        
私有方法

    }

}
                                                                                                                     来源:博客园
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值