0
点赞
收藏
分享

微信扫一扫

asp 分页程序类(XDOWNPAGE2.10)

XDownPage2.10是在2.0的基础上增加了sqlserver的分页支持。它依然支持oracle数据库。由于access与oracle很相似。所以也能很好的兼容access数据库。

' 
  ===================================================================== 
  
' 
  XDOWNPAGE   ASP版本 
  
' 
  版本   1.00 
  
' 
  Code by  zykj2000 
  

' 
  升级版本:2.10 
  
' 
  Updated by doublel,northsnow 
  
' 
  升级说明: 
  
' 
  1 , 数据查询时只查询当前页所包含的记录,大大降低了数据传输量 
  
' 
  2 , 如果正常的页导航,不用每次都查询总记录数,只要第一次查询后,后来通过参数传递即可 
  
' 
  3 , 支持动态更改页大小 
  
' 
  4 , 支持动态排序 
  
' 
  5 , 本程序支持oracle 和 sqlserver,以前发了一个oracle版(2.0),也有例子,如果只是在oracle上面用,还是用2.0好. 
  
' 
  如果今天的是在原来的基础上增加了对sqlserver的支持。由于sqlserver与 
  
' 
  oracle还是有区别的.所以大家如果想知道如何在sqlserver如何用,请查阅例子程序  
  
'
' 
  程序特点 
  
' 
  本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义, 
  
' 
  支持URL多个参数 
  
'
' 
  使用说明 
  
' 
  程序参数说明 
  
' 
  PapgeSize      定义分页每一页的记录数 
  
' 
  GetRS       返回经过分页的Recordset此属性只读 
  
' 
  GetConn      得到数据库连接 
  
' 
  GetSQL       得到查询语句 
  
' 
  totalRecordCount   传递总记录数 
  
 
  
 
  ' 
  程序方法说明 
  
' 
  ShowPage      显示分页导航条,唯一的公用方法 
  
' 
  ShowPageSizeChange()    显示改变页大小的列表 
  
'
' 
  例一:(oracle) 
  
'
' 
     '包含文件 
  
'
' 
   Set mypage=new xdownpage   '创建对象 
  
' 
   mypage.getconn=conn    '得到数据库连接 
  
' 
   mypage.getsql="select * from productinfo order by id asc" 
  
' 
   mypage.pagesize=5    '设置每一页的记录条数据为5条 
  
' 
  mypage.totalRecordCount=rsTotalCount  设置总记录数 
  
' 
   set rs=mypage.getrs()    '返回Recordset 
  
' 
  mypage.GetSubmitForm="frmQuery"  ' 分页默认提交的表单,currentpage参数 
  
' 
  Response.write(mypage.GetSubmitForm1())  '输出分页提交的函数 
  
' 
   mypage.showpage()    '显示分页信息,这个方法可以,在set rs=mypage.getrs()以后 
  
' 
          任意位置调用,可以调用多次 
  
' 
   do while not rs.eof    '接下来的操作就和操作一个普通Recordset对象一样操作 
  
' 
        response.write rs(0) & " 
  
' 
        " '这里就可以自定义显示方式了 
  
' 
        rs.movenext 
  
' 
   loop 
  
'
' 
  添加了保存当前页面数量的提交脚本 
  
' 
  函数为GetSubmitForm() 
  
' 
  需要提交给函数GetSubmitForm一个表单名字 
  
' 
  在这个提交的表单里面保存变量flag,currentpage,pagesize,rsTotalCount 四个参数 
  
' 
  例子如下 
  
' 
  flag=request("flag") 
  
' 
  currentpage=request("currentpage") 
  
' 
  currentpage=request("pagesize") 
  
' 
  currentpage=request("rsTotalCount") 
  
' 
  在提交的表单里面加入下面四个input 
  
' 
  <input name="flag" type="hidden" value="< % =flag% >"> 
  
' 
  <input name="currentpage" type="hidden" value="< % =currentpage% >"> 
  
' 
  <input name="pagesize" type="hidden" value="< % =pagesize% >"> 
  
' 
  <input name="rsTotalCount" type="hidden" value="< % =rsTotalCount% >"> 
  
' 
  ===================================================================== 
  
 
  
 
  ' 
  例二(sqlserver)   
  
 
       
  ' 
  与oracle大致上相似,但是也有比较不同之处.那就是sqlserver不是将一个生成的完整的sql语句传给分页对象,而是执行 
  
 
       
  ' 
  CreateSql_MSSQL方法创建. 
  
 
       
  ' 
  Set mypage=new xdownpage   '创建分页类对象 
  
 
       
  ' 
  mypage.getconn=conn        '得到数据库连接 
  
 
       
  ' 
  mypage.pagesize=pagesize   '设置每一页的记录条数据为5条 
  
 
       
  ' 
  mypage.totalRecordCount=rsTotalCount  '传递总记录数,分页的时候不用每次都去查一次 
  
 
  

     
  ' 
  创建查询语句 (这个是sqlserver与oracle特别的地方 
  
 
       
  ' 
  参数讲解:  表或视图,查询的列的列表,条件串,排序串,关键字字段 
  
 
       
  ' 
  mypage.CreateSql_MSSQL "err_type","*",strOption,strOrder,"err_type_code"   '****************************** 
  
 
  
     
  ' 
  生成分页和导航表单 
  
 
       
  ' 
  mypage.GetSubmitForm="frmHidden" 
  
 
       
  ' 
  Response.write(mypage.GetSubmitForm1()) 
  
 
       
  ' 
  执行查询并返回结果 
  
 
       
  ' 
  set rs=mypage.getrs()    '返回Recordset 
  
 
  
 
  Const 
   Btn_First 
  = 
  " 
  <font face=""webdings"">9</font> 
  " 
     
  ' 
  定义第一页按钮显示样式 
  
 
  Const 
   Btn_Prev 
  = 
  " 
  <font face=""webdings"">3</font> 
  " 
     
  ' 
  定义前一页按钮显示样式 
  
 
  Const 
   Btn_Next 
  = 
  " 
  <font face=""webdings"">4</font> 
  " 
     
  ' 
  定义下一页按钮显示样式 
  
 
  Const 
   Btn_Last 
  = 
  " 
  <font face=""webdings"">:</font> 
  " 
     
  ' 
  定义最后一页按钮显示样式 
  
 
  Const 
   XD_Align 
  = 
  " 
  center 
  " 
        
  ' 
  定义分页信息对齐方式 
  
 
  Const 
   XD_Width 
  = 
  " 
  100% 
  " 
        
  ' 
  定义分页信息框大小 
  
 
  Const 
   XD_Height 
  = 
  " 
  20 
  " 
  


Class Xdownpage    
  ' 
  类 从这里开始 
  
 
  
 
  ' 
  变量定义 
  
 
  public 
    int_totalPage      
  ' 
  总页数 
  
 
  public 
    int_curcount       
  ' 
  当前页的记录数 
  
 
  public 
    XD_PageSize        
  ' 
  页大小 
  
 
  Private 
   int_curpage        
  ' 
  当前页号 
  
 
  Private 
   int_totalRecord    
  ' 
  总记录数 
  
 
  Private 
   XD_Conn            
  ' 
  数据库连接对象 
  
 
  Private 
   XD_Rs              
  ' 
  记录集对象 
  
 
  Private 
   XD_SQL             
  ' 
  主sql语句 
  
 
  Private 
   XD_Count_SQL       
  ' 
  查询总记录数的sql语句 
  
 
  Private 
   Str_errors     
 
  Private 
   str_URL
 
  Private 
   XD_sURL
 
  Private 
   SubmitForm         
  ' 
  所需的查询表单名字(隐藏表单名字) 
  
 
  
 
  Private 
   XD_TableName      
  ' 
  表名 
  
 
  Private 
   XD_FieldList      
  ' 
  字段列表 
  
 
  Private 
   XD_Option         
  ' 
  查询条件 
  
 
  Private 
   XD_PK             
  ' 
  一个主关键字字段名 
  
 
  Private 
   XD_Order          
  ' 
  排序串 
  
 
  

 
  ' 
  ================================================================= 
  
' 
  PageSize 属性 
  
' 
  设置每一页的分页大小 
  
' 
  ================================================================= 
  
 
  Public 
    
  Property 
    
  Let 
   PageSize(int_PageSize)
  
  If 
    
  IsNumeric 
  (Int_Pagesize)  
  Then 
  
     
  if 
    
  clng 
  (Int_Pagesize) 
  > 
  0 
    
  then 
  
        XD_PageSize 
  = 
  CLng 
  (int_PageSize)
     
  else 
  
        XD_PageSize 
  = 
  10 
  
     
  end 
    
  if 
  
  
  Else 
  
    XD_PageSize 
  = 
  10 
  
  
  End 
    
  If 
  
 
  End Property 
  

 
  Public 
    
  Property 
    
  Get 
   PageSize
  
  If 
   XD_PageSize 
  = 
  "" 
    
  or 
   ( 
  not 
  ( 
  IsNumeric 
  (XD_PageSize)))  
  Then 
  
  PageSize 
  = 
  10 
  
  
  Else 
  
  PageSize 
  = 
  XD_PageSize
  
  End 
    
  If 
  
 
  End Property 
  
 
  ' 
  ================================================================= 
  
' 
  aTableName 属性 
  
' 
  查询的表名,用于自动构造语句 
  
' 
  ================================================================= 
  
 
  Public 
    
  Property 
    
  Let 
   aTableName(str_TableName)
    XD_TableName 
  = 
  str_TableName
 
  End Property 
  

 
  Public 
    
  Property 
    
  Get 
   aTableName
    aTableName 
  = 
  XD_TableName
 
  End Property 
  

 
  ' 
  ================================================================= 
  
' 
  aFieldList 属性 
  
' 
  查询的字段列表,用于自动构造语句 
  
' 
  ================================================================= 
  
 
  Public 
    
  Property 
    
  Let 
   aFieldList(str_FieldList)
    XD_FieldList 
  = 
  str_FieldList
 
  End Property 
  

 
  Public 
    
  Property 
    
  Get 
   aFieldList
    aFieldList 
  = 
  XD_FieldList
 
  End Property 
  

 
  ' 
  ================================================================= 
  
' 
  aOption 属性 
  
' 
  查询的条件串,用于自动构造语句 
  
' 
  ================================================================= 
  
 
  Public 
    
  Property 
    
  Let 
   aOption(str_Option)
    XD_Option 
  = 
  str_Option
 
  End Property 
  

 
  Public 
    
  Property 
    
  Get 
   aOption
    aOption 
  = 
  XD_Option
 
  End Property 
  

 
  ' 
  ================================================================= 
  
' 
  aPK 属性 
  
' 
  查询时可用的可唯一表示一条记录的字段,用于自动构造语句 
  
' 
  ================================================================= 
  
 
  Public 
    
  Property 
    
  Let 
   aPK(str_PK)
    XD_PK 
  = 
  str_PK
 
  End Property 
  

 
  Public 
    
  Property 
    
  Get 
   aPK
    aPK 
  = 
  XD_PK
 
  End Property 
  

 
  ' 
  ================================================================= 
  
' 
  aOrder 属性 
  
' 
  查询的排序串,用于自动构造语句 
  
' 
  ================================================================= 
  
 
  Public 
    
  Property 
    
  Let 
   aOrder(str_Ordert)
    XD_Order 
  = 
  str_Order
 
  End Property 
  

 
  Public 
    
  Property 
    
  Get 
   aOrder
    aOrder 
  = 
  XD_Order
 
  End Property 
  
 
  ' 
  ================================================================= 
  
' 
  GetRS 属性 
  
' 
  返回分页后的记录集 
  
' 
  ================================================================= 
  
 
  Public 
    
  Property 
    
  Get 
   GetRs()
  
  Set 
   XD_Rs 
  = 
  Server.createobject( 
  " 
  adodb.recordset 
  " 
  )
  
  ' 
  XD_Rs.PageSize=PageSize 
  
 
   XD_Rs.CursorLocation 
  = 
  3 
  
  
  ' 
  response.Write XD_SQL 
  
 
   XD_Rs.Open XD_SQL,XD_Conn, 
  3 
  , 
  1 
  
 int_curcount 
  = 
  XD_Rs.RecordCount
   
  ' 
  规范化int_totalRecord的值 
  
 
    
  if 
   int_totalRecord 
  = 
  "" 
    
  or 
    
  not 
    
  isNumeric 
  (int_totalRecord)  
  then 
   int_totalRecord 
  = 
  0 
    
  
  if 
   int_totalRecord 
  = 
  0 
    
  and 
   (int_curcount 
  >= 
  PageSize  
  or 
   int_curpage 
  > 
  1 
  )  
  then 
   
      
  call 
   queryRsCount()   
  ' 
  查询总记录数 
  
 
    
  end 
    
  if 
  
  
  if 
   int_totalRecord 
  = 
  0 
    
  and 
   int_curcount 
  > 
  0 
    
  then 
   int_totalRecord 
  = 
  int_curcount
  
  if 
   err.number 
  <> 
  0 
    
  then 
  
    Response.Write err.Clear
  
  end 
    
  if 
  
  
  Set 
   GetRs 
  = 
  XD_RS
 
  End Property 
  

 
  ' 
  ================================================================= 
  
' 
  queryRSCount 方法 
  
' 
  查询总记录数 
  
' 
  ================================================================= 
  
 
  Public 
    
  sub 
   queryRsCount()
     
  ' 
  下面代码用于计算总记录数 
  
 
       
  if 
   XD_Count_SQL 
  <> 
  "" 
    
  then 
  
         
  set 
   rs_sqlcount 
  = 
  server.createobject( 
  " 
  adodb.recordset 
  " 
  )
        rs_sqlcount.CursorLocation 
  = 
  3 
  
        rs_sqlcount.open XD_Count_SQL,conn, 
  3 
  , 
  1 
  
         
  if 
   (rs_sqlcount.eof  
  and 
   rs_sqlcount.bof)  
  then 
  
            int_totalRecord 
  = 
  0 
  
         
  else 
  
            int_totalRecord 
  = 
  rs_sqlcount( 
  0 
  )
            int_totalRecord 
  = 
  clng 
  (int_totalRecord)
         
  end 
    
  if 
  
        rs_sqlcount.close
         
  set 
   rs_sqlcount 
  = 
  nothing 
      
     
  end 
    
  if 
  
 
  End sub 
  

 
  ' 
  ================================================================ 
  
' 
  GetConn  得到数据库连接 
  
'
' 
  ================================================================ 
  
 
  Public 
    
  Property 
    
  Let 
   GetConn(obj_Conn)
  
  Set 
   XD_Conn 
  = 
  obj_Conn
 
  End Property 
  

 
  ' 
  ================================================================ 
  
' 
  GetSQL   得到查询语句, 
  
'
' 
  ================================================================ 
  
 
  Public 
    
  Property 
    
  Let 
   GetSQL(str_sql)
   
  if 
   (str_sql 
  <> 
  "" 
  )  
  then 
  
       
  ' 
  根据给定查询语句,生成最终的查询语句(只取当前页内容):适用于oracle数据库 
  
 
        XD_SQL 
  = 
  " 
   select * from (select rownum r_n,temptable.* from ( 
  " 
  
      XD_SQL 
  = 
  XD_SQL 
  & 
  str_sql
      XD_SQL 
  = 
  XD_SQL 
  & 
  " 
   ) temptable ) where r_n between  
  " 
    
  & 
    
  cstr 
  ((int_curpage  
  - 
  1 
  )  
  * 
   XD_PageSize  
  + 
  1 
  )  
  & 
    
  " 
   and  
  " 
    
  & 
    
  cstr 
  (int_curpage  
  * 
   XD_PageSize)
       
  ' 
  查询总记录数的查询语句 
  
 
        XD_Count_SQL 
  = 
  " 
  select count(*) from ( 
  " 
  & 
   str_sql  
  & 
    
  " 
  ) 
  " 
  
    
  end 
    
  if 
  
 
  End Property 
  

 
  ' 
  ================================================================ 
  
' 
  CreateSql_MSSQL  为对sqlserver的查询构造查询串 
  
'
' 
  ================================================================ 
  
 
  Public 
    
  sub 
   CreateSql_MSSQL(ooTableName,ooFieldList,ooOption,ooOrder,ooPK)
  XD_TableName 
  = 
  ooTableName
  XD_FieldList 
  = 
  ooFieldList
  XD_Option 
  = 
  ooOption
  XD_Order 
  = 
  ooOrder
  XD_PK 
  = 
  ooPK
   
  ' 
  response.Write XD_tablename 
  
 
     
  if 
   (XD_TableName 
  <> 
  "" 
    
  and 
   XD_FieldList 
  <> 
  "" 
    
  and 
   XD_PK 
  <> 
  "" 
  )  
  then 
  
         
  if 
  (int_curpage 
  > 
  1 
  )  
  then 
  
            XD_SQL 
  = 
  " 
  select top  
  " 
    
  & 
   XD_PageSize  
  & 
    
  " 
    
  " 
    
  & 
   XD_FieldList  
  & 
    
  " 
    from   
  " 
    
  & 
   XD_TableName  
  & 
    
  " 
    
  " 
    
  & 
    XD_Option
            XD_SQL  
  = 
  XD_SQL  
  & 
    
  " 
   and  
  " 
    
  & 
   XD_PK  
  & 
    
  " 
   not in(select top  
  " 
    
  & 
   XD_PageSize 
  * 
  (int_curpage 
  - 
  1 
  )  
  & 
    
  " 
    
  " 
    
  & 
   XD_PK  
  & 
    
  " 
    from  
  " 
    
  & 
   XD_TableName  
  & 
    
  " 
    
  " 
    
  & 
    XD_Option  
  & 
    
  " 
    
  " 
    
  & 
   XD_Order  
  & 
    
  " 
  )  
  " 
    
  & 
   XD_Order
         
  else 
  
            XD_SQL 
  = 
  " 
  select top  
  " 
    
  & 
   XD_PageSize  
  & 
    
  " 
    
  " 
    
  & 
   XD_FieldList  
  & 
    
  " 
   from  
  " 
    
  & 
   XD_TableName   
  & 
    
  " 
    
  " 
    
  & 
    XD_Option  
  & 
    
  " 
    
  " 
    
  & 
   XD_Order
         
  end 
    
  if 
   
  
         
  ' 
  查询总记录数的查询语句 
  
 
          XD_Count_SQL 
  = 
  " 
  select count(*) from  
  " 
    
  & 
   XD_TableName  
  & 
    
  " 
    
  " 
    
  & 
   XD_Option
    
  end 
    
  if 
  
    
  ' 
  response.Write XD_SQL 
  
 
  End sub 
  

 
  ' 
  ================================================================ 
  
' 
  GetSubmitForm属性   设置查询条件的表单 
  
'
' 
  ================================================================ 
  
 
  
 
  Public 
    
  Property 
    
  Let 
   GetSubmitForm(frmName)
   SubmitForm 
  = 
  trim 
  (frmName)
 
  End Property 
  

 
  ' 
  ================================================================ 
  
' 
  GetSubmitForm1方法  输出分页导航所需脚本 
  
'
' 
  ================================================================ 
  
 
  public 
    
  sub 
   GetSubmitForm1()
   
  ' 
  页导航的javascript函数 
  
 
    Response.Write  
  " 
    
  " 
  + 
  vrcrlf
  Response.Write ( 
  " 
  <Script language=""javascript""> 
  " 
  )  
  + 
  vbcrlf
  Response.Write  
  " 
        function generalSubmit(i) 
  " 
  + 
  vbcrlf
  Response.Write  
  " 
        { 
  " 
  + 
  vbcrlf
  Response.Write   
  " 
       document. 
  " 
  & 
  SubmitForm 
  & 
  " 
  .flag.value=""query1111111155555""; 
  " 
  + 
  vbcrlf
  Response.Write   
  " 
       document. 
  " 
  & 
  SubmitForm 
  & 
  " 
  .currentpage.value=i; 
  " 
  + 
  vbcrlf
  Response.Write   
  " 
        
  " 
  & 
  SubmitForm 
  & 
  " 
  .submit(); 
  " 
  + 
  vbcrlf
  
  Response.Write  
  " 
        } 
  " 
  + 
  vbcrlf
  
   
  ' 
  改变页大小的javascript函数 
  
 
    Response.Write  
  " 
      function changePageSize(ii) 
  " 
  + 
  vbcrlf
  Response.Write  
  " 
        { 
  " 
  + 
  vbcrlf
  Response.Write   
  " 
       document. 
  " 
  & 
  SubmitForm 
  & 
  " 
  .flag.value=""query1111111155555""; 
  " 
  + 
  vbcrlf
  Response.Write   
  " 
       document. 
  " 
  & 
  SubmitForm 
  & 
  " 
  .currentpage.value=1; 
  " 
  + 
  vbcrlf
  Response.Write   
  " 
       document. 
  " 
  & 
  SubmitForm 
  & 
  " 
  .pagesize.value=ii; 
  " 
  + 
  vbcrlf
  Response.Write   
  " 
        
  " 
  & 
  SubmitForm 
  & 
  " 
  .submit(); 
  " 
  + 
  vbcrlf

  Response.Write  
  " 
        } 
  " 
  + 
  vbcrlf
  Response.Write ( 
  " 
  </Script> 
  " 
  ) 
  + 
  vbcrlf
  Response.Write  
  " 
    
  " 
  + 
  vrcrlf
 
  end sub 
  

 
  ' 
  ================================================================== 
  
' 
  totalRecordCount 属性 
  
' 
  关于记录总数 
  
'
' 
  ================================================================== 
  
 
  
 
  Public 
    
  Property 
    
  Let 
   totalRecordCount(int_totalRecordCount)
    
  If 
    
  IsNumeric 
  (int_totalRecordCount)  
  Then 
  
      int_totalRecord 
  = 
  CLng 
  (int_totalRecordCount)
    
  End 
    
  If 
  
 
  End Property 
  

 
  Public 
    
  Property 
    
  Get 
   totalRecordCount
     
  If 
    
  not 
  (int_totalRecord 
  = 
  "" 
    
  or 
   ( 
  not 
  ( 
  IsNumeric 
  (int_totalRecord))))  
  Then 
  
        totalRecordCount 
  = 
  int_totalRecord
     
  End 
    
  If 
  
 
  End Property 
  
 
  ' 
  ================================================================== 
  
' 
  GetRecordCount 方法 
  
' 
  返回当前记录数 
  
'
' 
  ================================================================== 
  
 
  public 
    
  function 
   GetRecordCount()
    GetRecordCount 
  = 
  int_totalRecord
 
  end function 
  
 
  ' 
  ================================================================== 
  
' 
  Class_Initialize 类的初始化 
  
' 
  初始化当前页的值 
  
'
' 
  ================================================================== 
  
 
  Private 
    
  Sub 
   Class_Initialize
  
  ' 
  ======================== 
  
 
    
  ' 
  设定一些参数的黙认值 
  
 
    
  ' 
  ======================== 
  
' 
   XD_PageSize=10  '设定分页的默认值为10 
  
 
    
  ' 
  ======================== 
  
 
    
  ' 
  获取当前面的值 
  
 
    
  ' 
  ======================== 
  
 
    
  If 
   Request( 
  " 
  currentpage 
  " 
  ) 
  = 
  "" 
    
  Then 
  
  int_curpage 
  = 
  1 
  
  
  ElseIf 
    
  not 
  ( 
  IsNumeric 
  (Request( 
  " 
  currentpage 
  " 
  )))  
  Then 
  
  int_curpage 
  = 
  1 
  
  
  ElseIf 
    
  CInt 
  ( 
  Trim 
  (Request( 
  " 
  currentpage 
  " 
  ))) 
  < 
  1 
    
  Then 
  
  int_curpage 
  = 
  1 
  
  
  Else 
  
  Int_curpage 
  = 
  CInt 
  ( 
  Trim 
  (Request( 
  " 
  currentpage 
  " 
  )))
  
  End 
    
  If 
  

 
  End Sub 
  

 
  ' 
  ==================================================================== 
  
' 
  ShowPage  创建分页导航条 
  
' 
  有首页、前一页、下一页、末页、还有数字导航 
  
'
' 
  ==================================================================== 
  
 
  Public 
    
  Sub 
   ShowPage()
  
  Dim 
   str_tmp
 XD_sURL  
  = 
   GetUrl()
 
  ' 
   int_totalRecord=XD_Rs.RecordCount 
  
 
    
  If 
   int_totalRecord 
  <= 
  0 
    
  Then 
  
  str_error 
  = 
  str_error  
  & 
    
  " 
  总记录数为零,请输入数据 
  " 
  
   
  Call 
   ShowError()
  
  End 
    
  If 
  
 
  
  if 
    
  clng 
  (int_curpage) 
  = 
  0 
    
  then 
   int_curpage 
  = 
  1 
  

  
  If 
   int_totalRecord 
  = 
  "" 
    
  then 
   int_totalRecord 
  = 
  0 
  
  
  if 
   int_totalRecord 
  = 
  0 
    
  then 
   int_TotalPage 
  = 
  1 
  
  
  if 
   int_totalRecord 
  > 
  0 
    
  then 
  
     
  ' 
  modify by wls 041215 For the right pages display--------------- 
  
 
       
  If 
   int_totalRecord  
  mod 
   PageSize  
  = 
  0 
    
  Then 
  
        int_TotalPage  
  = 
    
  CLng 
  (int_TotalRecord /  
   
   XD_PageSize  
  * 
    
  - 
  1 
  ) 
  *- 
  1 
  
     
  Else 
  
        int_TotalPage  
  = 
    
  CLng 
  (int_TotalRecord  /  
   
   XD_PageSize  
  * 
    
  - 
  1 
  ) 
  *- 
  1 
  + 
  1 
  
     
  End 
    
  If 
  
  
  End 
    
  If 
  

  
  If 
   Int_curpage 
  > 
  int_Totalpage  
  Then 
  
    int_curpage 
  = 
  int_TotalPage
  
  End 
    
  If 
  
 
  ' 
  response.Write "?? " & int_curpage & ":" & int_totalpage & ":" & xd_pagesize & ":" & int_totalrecord & "**" 
  
 
    
  ' 
  =============================================================================== 
  
 
    
  ' 
  显示分页信息,各个模块根据自己要求更改显求位置 
  
 
    
  ' 
  =============================================================================== 
  
 
    
  ' 
  response.write " " 
  
 
   str_tmp 
  = 
  ShowFirstPrv
 response.write str_tmp
 str_tmp 
  = 
  showNumBtn
 response.write str_tmp
 str_tmp 
  = 
  ShowNextLast
 response.write str_tmp
 str_tmp 
  = 
  ShowPageInfo
 response.write str_tmp
 Response.write  
  " 
    
  " 
  
 ShowGoto

 
  End Sub 
  



 
  ' 
  ==================================================================== 
  
' 
  ShowFirstPrv  显示首页、前一页 
  
'
'
' 
  ==================================================================== 
  
 
  Private 
    
  Function 
   ShowFirstPrv()
     
  Dim 
   Str_tmp,int_prvpage

     
  If 
   int_curpage 
  = 
  1 
    
  Then 
  
        str_tmp 
  = 
  Btn_First 
  & 
  " 
    
  " 
  & 
  Btn_Prev
     
  Elseif 
   int_curpage 
  = 
  0 
    
  then 
  
        str_tmp 
  = 
  Btn_First 
  & 
  " 
    
  " 
  & 
  Btn_Prev
     
  else 
  
        int_prvpage 
  = 
  int_curpage 
  - 
  1 
  
        str_tmp 
  = 
  " 
  <a href=""#"" οnclick=""javascript:generalSubmit('1')"" alt=""第一页""> 
  " 
    
  & 
   Btn_First 
  & 
  " 
  </a> <a href=""#"" οnclick=""javascript:generalSubmit(' 
  " 
  & 
  int_prvpage 
  & 
  " 
  ')"" alt=""前一页""> 
  " 
    
  & 
   Btn_Prev 
  & 
  " 
  </a> 
  " 
  
     
  End 
    
  If 
  
    ShowFirstPrv 
  = 
  str_tmp
 
  End Function 
  

 
  ' 
  ==================================================================== 
  
' 
  ShowNextLast  下一页、末页 
  
'
'
' 
  ==================================================================== 
  
 
  Private 
    
  Function 
   ShowNextLast()
  
  Dim 
   str_tmp,int_Nextpage

  
  If 
   Int_curpage 
  >= 
  int_totalpage  
  Then 
  
  str_tmp 
  = 
  Btn_Next  
  & 
    
  " 
    
  " 
    
  & 
   Btn_Last
  
  Else 
  
  Int_NextPage 
  = 
  int_curpage 
  + 
  1 
  
  str_tmp 
  = 
  " 
  <a href=""#"" οnclick=""javascript:generalSubmit(' 
  " 
  & 
  int_nextpage 
  & 
  " 
  ')"" alt=""后一页""> 
  " 
    
  & 
   Btn_Next 
  & 
  " 
  </a> <a href=""#"" οnclick=""javascript:generalSubmit(' 
  " 
  & 
  int_totalpage 
  & 
  " 
  ')"" alt=""最后一页""> 
  " 
    
  & 
    Btn_Last 
  & 
  " 
  </a> 
  " 
  
  
  End 
    
  If 
  
 ShowNextLast 
  = 
  str_tmp
 
  End Function 
  

 
  ' 
  End Function 
  
' 
  ==================================================================== 
  
' 
  ShowNumBtn 修改后的数字导航 
  
'
' 
  ==================================================================== 
  
 
  Function 
   showNumBtn()
  
  Dim 
   i,str_tmp,end_page,start_page

 start_page 
  = 
  1 
  
  
  ' 
  add by sll 2005.05.20 int_curpage=0 
  
 
    
  if 
   int_curpage 
  = 
  0 
    
  then 
  
     str_tmp 
  = 
  str_tmp 
  & 
  " 
  0 
  " 
  
 
  else 
  
     
  if 
   int_curpage 
  > 
  1 
    
  then 
  
        start_page 
  = 
  int_curpage
         
  if 
   (int_curpage 
  <= 
  5 
  )  
  then 
  
            start_page 
  = 
  1 
  
         
  end 
    
  if 
  
         
  if 
   (int_curpage 
  > 
  5 
  )  
  then 
  
            start_page 
  = 
  int_curpage 
  - 
  2 
  
         
  end 
    
  if 
  
      
  end 
    
  if 
  
         end_page 
  = 
  start_page 
  + 
  5 
  
      
  if 
   end_page 
  > 
  int_totalpage  
  then 
  
        end_page 
  = 
  int_totalpage
      
  end 
    
  if 
  
      
  For 
   i 
  = 
  start_page  
  to 
   end_page
                strTemp 
  = 
  XD_sURL  
  & 
    
  CStr 
  (i)
                str_tmp 
  = 
  str_tmp  
  & 
    
  " 
  [<a href=""#"" οnclick=""javascript:generalSubmit(' 
  " 
  & 
  i 
  & 
  " 
  ')""> 
  " 
  & 
  i 
  & 
  " 
  </a>]  
  " 
  
      
  Next 
  
 
  end 
    
  if 
  
 showNumBtn 
  = 
  str_tmp
 
  End Function 
  

 
  ' 
  ==================================================================== 
  
' 
  ShowGoto 页面跳转 
  
' 
  页面自动跳转 
  
' 
  add by sll 2005.05.20 
  
' 
  ==================================================================== 
  
 
  Private 
    
  Function 
   ShowGoto()
 
  ' 
  response.write int_totalPage 
  
 
    
  dim 
   inti
  
  if 
   int_totalPage 
  <= 
  0 
    
  then 
  

  response.write  
  " 
  <select name='goto' disabled> 
  " 
  
         Response.Write  
  " 
  <option value='0'>0</option> 
  " 
  
        response.write  
  " 
  </select> 
  " 
  
 
  else 
  

 response.write  
  " 
  <select name='goto' οnchange='javascript:generalSubmit(this.value)'> 
  " 
  

      
  for 
   inti 
  = 
  1 
    
  to 
   int_totalPage

         Response.Write  
  " 
  <option value=' 
  " 
  & 
  inti 
  & 
  " 
  ' 
  " 
  
          
  if 
    
  cstr 
  (inti) 
  = 
  cstr 
  (int_curpage)  
  then 
  
             response.write  
  " 
  selected 
  " 
  
          
  end 
    
  if 
  
             response.write 
  " 
   > 
  " 
  & 
  inti 
  & 
  " 
  </option> 
  " 
  
     
  next 
  
response.write  
  " 
  </select> 
  " 
  
 
  end 
    
  if 
  
 
  End Function 
  


 
  ' 
  ==================================================================== 
  
' 
  ShowPageInfo  分页信息 
  
' 
  根据要求自行修改 
  
'
' 
  ==================================================================== 
  
 
  Private 
    
  Function 
   ShowPageInfo()
  
  Dim 
   str_tmp
 str_tmp 
  = 
  " 
   [页次:<font color=red> 
  " 
  & 
  int_curpage 
  & 
  " 
  </font>/ 
  " 
  & 
  int_totalpage 
  & 
  " 
  页] [共 
  " 
  & 
  int_totalrecord 
  & 
  " 
  条] [ 
  " 
  & 
  XD_PageSize 
  & 
  " 
  条/页] 
  " 
  
 ShowPageInfo 
  = 
  str_tmp
 
  End Function 
  
 
  ' 
  ==================================================================== 
  
' 
  ShowPageSizeChange  改变页大小 
  
' 
  根据要求自行修改 
  
'
' 
  ==================================================================== 
  
 
  public 
    
  sub 
   ShowPageSizeChange()
  
  Dim 
   str_tmp
  
  dim 
   eFlag:eFlag 
  = 
  0 
  
 str_tmp 
  = 
  " 
  页大小:<select name='sssssPageSize' οnchange='changePageSize(this.value)'> 
  " 
  
 str_tmp 
  = 
  str_tmp  
  & 
    
  " 
  <option 
  " 
  
  
  if 
   XD_PageSize 
  = 
  10 
    
  then 
   
     str_tmp  
  = 
  str_tmp  
  & 
    
  " 
   selected  
  " 
  
     eFlag 
  = 
  1 
  
  
  end 
    
  if 
  
 str_tmp 
  = 
  str_tmp  
  & 
    
  " 
   value='10'>10</option> 
  " 
  
 str_tmp 
  = 
  str_tmp  
  & 
    
  " 
  <option 
  " 
  
  
  if 
   XD_PageSize 
  = 
  20 
    
  then 
   
     str_tmp  
  = 
  str_tmp  
  & 
    
  " 
   selected  
  " 
  
     eFlag 
  = 
  1 
  
  
  end 
    
  if 
  
 str_tmp 
  = 
  str_tmp  
  & 
    
  " 
   value='20'>20</option> 
  " 
  
 str_tmp 
  = 
  str_tmp  
  & 
    
  " 
  <option 
  " 
  
  
  if 
   XD_PageSize 
  = 
  50 
    
  then 
   
     str_tmp  
  = 
  str_tmp  
  & 
    
  " 
   selected  
  " 
  
     eFlag 
  = 
  1 
  
  
  end 
    
  if 
  
 str_tmp 
  = 
  str_tmp  
  & 
    
  " 
   value='50'>50</option> 
  " 
  
 str_tmp 
  = 
  str_tmp  
  & 
    
  " 
  <option 
  " 
  
  
  if 
   XD_PageSize 
  = 
  int_totalRecord  
  then 
   
     str_tmp  
  = 
  str_tmp  
  & 
    
  " 
   selected  
  " 
  
     eFlag 
  = 
  1 
  
  
  end 
    
  if 
  
 str_tmp 
  = 
  str_tmp  
  & 
    
  " 
   value=' 
  " 
    
  & 
   int_totalRecord  
  & 
    
  " 
  '>all</option> 
  " 
  
  
  if 
   eFlag 
  = 
  0 
    
  then 
  
     str_tmp 
  = 
  str_tmp  
  & 
    
  " 
  <option selected value=' 
  " 
    
  & 
   XD_PageSize  
  & 
    
  " 
  '> 
  " 
    
  & 
   XD_PageSize  
  & 
    
  " 
  </option> 
  " 
  
  
  end 
    
  if 
  
 str_tmp 
  = 
  str_tmp  
  & 
    
  " 
  </select> 
  " 
  
 response.Write str_tmp
 
  End sub 
  

 
  ' 
  ==================================================================== 
  
' 
  修改后的获取当前Url参数的函数 
  
' 
  Codeing by Redsun 
  
' 
  northsnow注释:不知道用在何处,但是保留 
  
' 
  ==================================================================== 
  
 
  Private 
    
  Function 
   GetUrl()
  
  Dim 
   ScriptAddress, M_ItemUrl, M_item
 ScriptAddress  
  = 
    
  CStr 
  (Request.ServerVariables( 
  " 
  SCRIPT_NAME 
  " 
  )) 
  & 
  " 
  ? 
  " 
           
  ' 
  取得当前地址 
  
 
    
  If 
   (Request.QueryString  
  <> 
    
  "" 
  )  
  Then 
  
  M_ItemUrl  
  = 
    
  "" 
  
   
  For 
    
  Each 
   M_item In Request.QueryString
    
  If 
    
  InStr 
  ( 
  " 
  page 
  " 
  ,M_Item) 
  = 
  0 
    
  Then 
  
    M_ItemUrl  
  = 
   M_ItemUrl  
  & 
   M_Item  
  & 
  " 
  = 
  " 
  & 
   Server.URLEncode(Request.QueryString( 
  "" 
  & 
  M_Item 
  & 
  "" 
  ))  
  & 
    
  " 
  & 
  " 
  
    
  End 
    
  If 
  
   
  Next 
  
  ScriptAddress  
  = 
   ScriptAddress  
  & 
   M_ItemUrl             
  ' 
  取得带参数地址 
  
 
    
  End 
    
  If 
  
 GetUrl  
  = 
   ScriptAddress  
  ' 
  & "page=" 
  
 
  End Function 
  


 
  ' 
  ==================================================================== 
  
' 
   设置 Terminate 事件。 
  
' 
  ==================================================================== 
  
 
  Private 
    
  Sub 
   Class_Terminate
  
  ' 
  XD_RS.close 
  
 
    
  ' 
  Set XD_RS=nothing 
  
 
  End Sub 
  


 
  ' 
  ==================================================================== 
  
' 
  ShowError  错误提示 
  
' 
  ==================================================================== 
  
 
  Private 
    
  Sub 
   ShowError()
  
  If 
   str_Error  
  <> 
    
  "" 
    
  Then 
  
  Response.Write( 
  "" 
    
  & 
   SW_Error  
  & 
    
  "" 
  )
  Response.End
  
  End 
    
  If 
  
 
  End Sub 
  

 
  End 
   class

举报

相关推荐

0 条评论