呵呵!今天午觉没睡好,感觉太热了,睡了一下子就热醒了,同事们都不吹空调了,没办法!
现在已经是上班时间了,但一点也不想做事,再加上没睡好,头晕晕的,跑到洗手间用冷水洗
一把脸,回到办公桌前,就想到先写篇BLOG吧,昨天写了一个分页控件,把它写到自己的BLOG
上去,呵呵!其实这个控件之前是我同事写的,昨天闲得无聊,就想到把同事那个控件改进一下
吧,我觉得搞得太复杂了(按钮太多、、、,我自认为不需要那些东东)
  我同事把这个控件称之为“无源虚拟分页控件”因为它是不需要数据源的,只起到虚拟选择页
号与定位的作用,只需要指定其TotalRecord(记录总数)就可以帮你虚拟分页了.
  控件的按钮支持文字和图片俩种格式,可以设定其版页最大显示数,每页显示记录数,以及鼠标
放在按钮上的提示信息.
  由于是无源虚拟分页,所以控件必须给定TotalRecord(记录总数)以及实现ChangePageClick事件
那么记录的总数怎么出来呢,那当然是通过存储过程来取得了,这个存储过程必须是每次取得的数据
是当前展示所需要的(也就是说取当前页的记录),如果一股脑儿把所有满足条件的数据全取出来
那根本就没有意义了,所以呢,要实现分页这个存储过程也是很重要的。
  下面是我做DEMO的存储过程

一个自认为貌似Baidu,Google的翻页导航控件set ANSI_NULLS ON
一个自认为貌似Baidu,Google的翻页导航控件
set QUOTED_IDENTIFIER ON
一个自认为貌似Baidu,Google的翻页导航控件
go
一个自认为貌似Baidu,Google的翻页导航控件
一个自认为貌似Baidu,Google的翻页导航控件
-- =============================================
一个自认为貌似Baidu,Google的翻页导航控件--
 Author:        <不懂>
一个自认为貌似Baidu,Google的翻页导航控件--
 Create date: <2006-11-8>
一个自认为貌似Baidu,Google的翻页导航控件--
 Description:    <分页存储过程>
一个自认为貌似Baidu,Google的翻页导航控件--
 =============================================
一个自认为貌似Baidu,Google的翻页导航控件
ALTER PROCEDURE [dbo].[P_PageRecord]
一个自认为貌似Baidu,Google的翻页导航控件(
@intPageSize int=10,@intPageNum int=1,@strWhere nvarchar(200))
一个自认为貌似Baidu,Google的翻页导航控件
AS
一个自认为貌似Baidu,Google的翻页导航控件
BEGIN
一个自认为貌似Baidu,Google的翻页导航控件    
SET NOCOUNT ON;
一个自认为貌似Baidu,Google的翻页导航控件
一个自认为貌似Baidu,Google的翻页导航控件    
if(@intPageSize<2 or @intPageSize>100)
一个自认为貌似Baidu,Google的翻页导航控件        
set @intPageSize=10
一个自认为貌似Baidu,Google的翻页导航控件    
if(@intPageNum<1)
一个自认为貌似Baidu,Google的翻页导航控件        
set @intPageNum=1;
一个自认为貌似Baidu,Google的翻页导航控件    
WITH Search(OrderID,CustomerID,EmployeeID,OrderDate,RequiredDate,ShippedDate , ShipVia ,Freight ,ShipName,RowNum)
一个自认为貌似Baidu,Google的翻页导航控件           
as
一个自认为貌似Baidu,Google的翻页导航控件              (
一个自认为貌似Baidu,Google的翻页导航控件              
select OrderID ,
一个自认为貌似Baidu,Google的翻页导航控件                     CustomerID,
一个自认为貌似Baidu,Google的翻页导航控件                     EmployeeID ,
一个自认为貌似Baidu,Google的翻页导航控件                     OrderDate,
一个自认为貌似Baidu,Google的翻页导航控件                     RequiredDate,
一个自认为貌似Baidu,Google的翻页导航控件                     ShippedDate ,
一个自认为貌似Baidu,Google的翻页导航控件                     ShipVia ,
一个自认为貌似Baidu,Google的翻页导航控件                     Freight ,
一个自认为貌似Baidu,Google的翻页导航控件                     ShipName,
一个自认为貌似Baidu,Google的翻页导航控件                     ROW_NUMBER() 
over (order by OrderID DESCas RowNum
一个自认为貌似Baidu,Google的翻页导航控件              
from Orders where ShipAddress like N'%'+@strWhere+N'%'
一个自认为貌似Baidu,Google的翻页导航控件              )
一个自认为貌似Baidu,Google的翻页导航控件
一个自认为貌似Baidu,Google的翻页导航控件    
SELECT OrderID,CustomerID,EmployeeID,OrderDate,RequiredDate,ShippedDate , ShipVia ,Freight ,ShipName,(select count(*from Search) as Rows from Search
一个自认为貌似Baidu,Google的翻页导航控件    
where RowNum>@intPageSize*(@intPageNum-1and RowNum<=@intPageSize*@intPageNum
一个自认为貌似Baidu,Google的翻页导航控件   
SET NOCOUNT OFF;
一个自认为貌似Baidu,Google的翻页导航控件   
return @@ERROR
一个自认为貌似Baidu,Google的翻页导航控件
END


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

 

一个自认为貌似Baidu,Google的翻页导航控件using System;
一个自认为貌似Baidu,Google的翻页导航控件
using System.Collections.Generic;
一个自认为貌似Baidu,Google的翻页导航控件
using System.Web.UI;
一个自认为貌似Baidu,Google的翻页导航控件
using System.Web.UI.WebControls;
一个自认为貌似Baidu,Google的翻页导航控件
using System.Web.UI.HtmlControls;
一个自认为貌似Baidu,Google的翻页导航控件
using System.ComponentModel;
一个自认为貌似Baidu,Google的翻页导航控件
using System.Text;
一个自认为貌似Baidu,Google的翻页导航控件
一个自认为貌似Baidu,Google的翻页导航控件[assembly: TagPrefix(
"SmbComponent","BG")]
一个自认为貌似Baidu,Google的翻页导航控件
namespace SmbComponent
}

相关文章:

  • 2021-07-27
  • 2021-05-20
  • 2022-12-23
  • 2021-07-14
  • 2021-08-15
  • 2022-12-23
  • 2021-07-07
猜你喜欢
  • 2021-11-19
  • 2021-06-04
  • 2021-11-06
  • 2021-10-02
  • 2022-12-23
  • 2021-07-24
  • 2022-12-23
相关资源
相似解决方案