0
点赞
收藏
分享

微信扫一扫

XDownPage2.10使用简单例子(sqlserver)


 asp分页基础类XDownPage2.0只支持oracle,而 2.10已经能够支持sqlserver了。本例将演示XDownPage2.10对于sqlserver数据库的分页方法。

1 ,  分页程序代码

请详见另一篇文章:

2 ,  conn.asp(数据库连接相关的程序)

' 
  ================================================== 
  
' 
   数据库访问 
  
' 
  ================================================== 
  
 
  
  
  ' 
  建立数据库连接 
  
 
    
  dim 
   conn          
  ' 
  数据库连接对象 
  
 
    
  set 
   conn 
  = 
  server.createobject( 
  " 
  ADODB.CONNECTION 
  " 
  )
  
  sub 
   openConn
    connstr 
  = 
  " 
  Provider=sqloledb;Data Source=127.0.0.1;Initial Catalog=it;User Id=it_manage;Password=it_manage; 
  " 
  
    conn.open connstr
  
  end sub 
   
 
  ' 
  清除数据库连接 
  
 
    
  sub 
   CloseConn
    conn.Close()
     
  set 
   conn 
  = 
  nothing 
  
  
  end sub 
  
 
  
  ' 
  关闭打开的记录集 
  
 
    
  sub 
   CloseRS(byref recordset)
    recordset.close()
     
  set 
   recordset 
  = 
  nothing 
  
  
  end sub 
  
 
   
  ' 
  获得当前虚拟目录的名字 
  
 
    
  function 
   getRoot()
    url 
  = 
  Request.ServerVariables( 
  " 
  URL 
  " 
  )
    url 
  = 
  right 
  (url, 
  len 
  (url) 
  - 
  1 
  )
    getRoot 
  = 
    
  mid 
  (url, 
  1 
  , 
  instr 
  (url, 
  " 
  / 
  " 
  ) 
  - 
  1 
  )
  
  end function 
  
 
    
  ' 
  ----------------  数据库排序 start --------------------------- 
  
 
      sImageDir      
  = 
    
  " 
  / 
  " 
    
  & 
   getRoot()  
  & 
    
  " 
  /images/ 
  " 
                                 
  ' 
  图片路径 
  
 
      upOrderFlag    
  = 
    
  " 
  <img border=0 src=' 
  " 
    
  & 
  sImageDir  
  & 
     
  " 
  sort_asc.gif'> 
  " 
         
  ' 
  升序排列显示图标 
  
 
      downOrderFlag  
  = 
    
  " 
  <img border=0 src=' 
  " 
    
  & 
  sImageDir  
  & 
     
  " 
  sort_desc.gif'> 
  " 
        
  ' 
  降序排列显示图标 
  
 
    
  ' 
  获得当前连接的排序方向 
  
 
           
  function 
   getOrderDir(fn,ofn,oDir)
             
  dim 
   tDir
            tDir 
  = 
  " 
  desc 
  " 
  
             
  if 
  ( 
  lcase 
  (fn) 
  = 
  lcase 
  (ofn))  
  then 
  
                 
  if 
  ( 
  lcase 
  (oDir) 
  = 
  " 
  asc 
  " 
  )  
  then 
   
                    tDir 
  = 
  " 
  desc 
  " 
  
                 
  else 
  
                    tDir 
  = 
  " 
  asc 
  " 
  
                 
  end 
    
  if 
  
             
  end 
    
  if 
  
            getOrderDir 
  = 
  tDir
         
  end function 
  

         
  ' 
  书写排序指示图标 
  
 
           
  function 
   writeOrderDir(fn,ofn,oDir)
             
  dim 
   tDir
             
  if 
  ( 
  lcase 
  (fn) 
  = 
  lcase 
  (ofn))  
  then 
  
                 
  if 
  ( 
  lcase 
  (oDir) 
  = 
  " 
  asc 
  " 
  )  
  then 
   
                    tDir 
  = 
  UpOrderFlag
                 
  else 
  
                    tDir 
  = 
  downOrderFlag
                 
  end 
    
  if 
  
             
  end 
    
  if 
  
            writeOrderDir 
  = 
  tDir
         
  end function 
  
        
           
  ' 
  添加排序列头 
  
 
           
  sub 
   WriteOrderHeader(pHeaderTitle,pOrderField,tOrderField,tOrderDir)
            Response.Write  
  " 
  <span οnclick=""gotoOrder(' 
  " 
    
  & 
   pOrderField  
  & 
    
  " 
  ',' 
  " 
    
  & 
   getOrderDir(pOrderField,tOrderField,tOrderDir)  
  & 
    
  " 
  ')"" class='noticetitle' style='width:90%;cursor:default'> 
  " 
    
  & 
   pHeaderTitle  
  & 
    
  " 
    
  " 
    
  & 
   writeOrderDir(pOrderField,tOrderField,tOrderDir)  
  & 
    
  " 
  </span> 
  " 
  
         
  end sub 
   

   
  ' 
  ----------------  数据库排序 end ---------------------------

XDownPage2.10使用简单例子(sqlserver)_input

 

3 ,  main.asp(主程序)

<!--   #include file="../../inc/conn.asp" 
  --> 
  
   <!-- 
  #include file="../../inc/pagination.asp" 
  --> 
  
   <% 
  ... 
  
'故障类别管理
'writer:northsnow
'create date  :051211
   %> 
  
   < 
  script  
  language 
  ="javascript" 
  > 
  ... 
  
//执行查询前将查询条件写到隐藏表单
function query()
...{
  var oFormHidden=document.frmHidden;
  if(!oFormHidden) return false;
  oFormHidden.currentpage.value="";
  oFormHidden.flag.value="query";
  oFormHidden.err_type_name.value=frmList.err_type_name.value;
  oFormHidden.err_type_code.value=frmList.err_type_code.value;
  oFormHidden.submit();
}

//重置查询条件
function myreset()
...{
  frmList.err_type_name.value="";
  frmList.err_type_code.value="";
}


//执行动态排序
function gotoOrder(uOrderField,uOrderDir)
...{
  frmHidden.currentpage.value="1";
  frmHidden.flag.value="query";
  frmHidden.orderField.value=uOrderField;
  frmHidden.orderDir.value=uOrderDir;
  frmHidden.submit();
}


}
   </ 
  script 
  > 
  
   <% 
  ... 
        'on error resume next 
        '获取参数
    dim err_type_name,err_type_code
    dim currentpage,flag,pagesize,rsTotalCount,orderDir,orderField
    currentpage=trim(request.form("currentpage"))
    div_p=trim(request("div_p"))
    flag=trim(request("flag"))
    pagesize=trim(request("pagesize"))
    rsTotalCount=trim(request("rsTotalCount"))
    orderDir=trim(Request("orderdir"))
    orderField=trim(Request("orderfield"))
    
    err_type_code=trim(request("err_type_code"))
    err_type_name=trim(request("err_type_name"))
   %> 
      

      
  < 
  span   
  class 
  ="titlestyle" 
  > 
  >> 
   故障类别管理 
  </ 
  span 
  > 
   
    <!-- 
  下面是查询框 
  --> 
  
   < 
  div  
  align 
  =center 
  >< 
  span  
  id 
  ="qSpan" 
  > 
  
   < 
  fieldset  
  style 
  ="width:100%;padding:'2px 2px'" 
   align 
  ="center" 
   class 
  ="border" 
  > 
  
   < 
  legend   
  class 
  ="border" 
   align 
  =right  
  style 
  ="border:0px" 
  > 
  
    < 
  a  
  href 
  ="#" 
    onclick 
  ="javascript:query()" 
    tabindex 
  ="1" 
  > 
  查询 
  </ 
  a 
  > 
  |
    < 
  a  
  href 
  ="#" 
   onClick 
  ="javascript:myreset()" 
    
  > 
  重置 
  </ 
  a 
  > 
  
    </ 
  legend 
  > 
  
     < 
  table  
  width 
  ="100%" 
   align 
  ="center" 
   ID 
  ="Table1" 
  > 
  
     < 
  tr  
  >< 
  form  
  name 
  ="frmList" 
   action 
  ="#" 
   method 
  ="post" 
   ID 
  ="Form1" 
  > 
  
       < 
  td  
  valign 
  ="middle" 
   align 
  ="center" 
    
  > 
  
         < 
  table  
  width 
  ="100%" 
   border 
  ="0" 
   cellspacing 
  ="0" 
   cellpadding 
  ="0" 
   ID 
  ="Table2" 
  > 
  
             < 
  tr 
  > 
  
               < 
  td  
  align 
  ="center" 
   width 
  ="50%" 
  > 
  类别代码:
                   < 
  input  
  name 
  ="err_type_code" 
   type 
  ="text" 
   class 
  ="line" 
   maxlength 
  ="4" 
   value 
  ="<%=err_type_code%>" 
   ID 
  ="Text1" 
  ></ 
  td 
  > 
  
               < 
  td  
  align 
  ="center" 
   width 
  ="50%" 
  > 
  类别名称:
                   < 
  input  
  name 
  ="err_type_name" 
   type 
  ="text" 
    class 
  ="line" 
   value 
  ="<%=err_type_name%>" 
    size 
  ="22" 
   ID 
  ="Text2" 
  ></ 
  td 
  > 
  
             </ 
  tr 
  > 
  
         </ 
  table 
  > 
  
       </ 
  td 
  > 
  
     </ 
  tr 
  ></ 
  form 
  > 
  
   </ 
  table 
  > 
  
   </ 
  fieldset 
  ></ 
  span 
  > 
  
   < 
  table  
  width 
  =100%  
  align 
  =center  
  border 
  ="0" 
   cellpadding 
  ="0" 
   cellspacing 
  ="0" 
   ID 
  ="Table3" 
  > 
  
   < 
  form  
  name 
  ="manForm" 
   ID 
  ="Form2" 
  >< 
  tr 
  >< 
  td  
  align 
  =center  
  valign 
  =top 
  > 
  
       < 
  table  
  border 
  ="0" 
   width 
  ="100%" 
   cellspacing 
  ="0" 
   cellpadding 
  ="0" 
   ID 
  ="Table4" 
  > 
  
                 <% 
  ... 
  
                    
                     '定义记录集对象
                     set rs=server.CreateObject("adodb.recordset")
                     rs.CursorLocatinotallow=3 '定义记录集的属性
                     if pagesize="" then pagesize=15  '定义默认页大小
            
                     '//形成查询条件串
                     strOptinotallow="where 1=1"
                     if err_type_code<>"" then
                         strOptinotallow=strOption & " and err_type_code='"&err_type_code&"'"
                     end if
                     if err_type_name<>"" then
                         strOptinotallow=strOption & " and err_type_name like '%"&err_type_name&"%'"
                     end if 
                     '形成排序串
                     strOrder=""
                     if orderField<>"" then        
                        strOrder=" order by " & orderField
                        if orderDir<>"" then strOrder=strOrder & " " & orderDir
                     end if    
                     if strOrder="" then strOrder=" order by err_type_code asc"    
                    
                    '连接数据库
                     Call OpenConn()
            
                     Set mypage=new xdownpage   '创建分页类对象
                     mypage.getcnotallow=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
                    %> 
   
                        < 
  tr  
  height 
  ="28" 
  > 
  
                    < 
  td  
  align 
  ="left" 
   width 
  ="400" 
   valign 
  ="top" 
  > 
  
                         < 
  table  
  cellspacing 
  ="1" 
    class 
  ="tableBorder1" 
   cellpadding 
  =0   
  bordercolordark 
  =#FFFFFF  
  width 
  ="100%" 
   bordercolorlight 
  =#014E4B  
  ID 
  ="Table5" 
  > 
  
                           < 
  tr  
  height 
  ="25" 
  > 
  
                             < 
  td  
  valign 
  ="center" 
   align 
  ="left" 
   width 
  ="20%" 
    class 
  ="noticetitle" 
   background 
  ="../../images/topbg.gif" 
   nowrap 
  > 
  
                                 <% 
  ... 
  WriteOrderHeader "类别代码","err_type_code",OrderField,OrderDir  '写列头,并使该列可以实现单击排序功能%></td>
                          <td valign="center" align="left"  width="70%"  class="noticetitle" background="../../images/topbg.gif" nowrap>
                              <%WriteOrderHeader "类别名","err_type_name",OrderField,OrderDir   %> 
  </ 
  td 
  > 
  
                           </ 
  tr 
  > 
  
                         <% 
  ... 
  i=1
                        do while not rs.EOF    %> 
  
                               < 
  tr  
  <% if i mod 2 
  =0  
  then % 
  > 
   class="tr2"  
  <% 
  ... 
  else  
  %> 
   class="tr1"  
  <% 
  ... 
  end if  
  %> 
   >
                                   < 
  td  
  height 
  ="23" 
   align 
  ="center" 
    valign 
  ="top" 
    
  > 
  <% 
  = 
  rs( 
  " 
  err_type_code 
  " 
  ) 
  %> 
  </ 
  td 
  > 
  
                                   < 
  td  
  height 
  ="23" 
   align 
  ="center" 
    
  > 
  <% 
  = 
  FilterParam3(rs( 
  " 
  err_type_name 
  " 
  )) 
  %> 
  </ 
  td 
  > 
  
                                   < 
  td  
  height 
  ="23" 
   align 
  ="center" 
  > 
  
                               </ 
  tr 
  > 
  
                               <% 
  ... 
   i=i+1 
                           rs.MoveNext 
                        loop   %> 
  
                         </ 
  table 
  > 
  
                   </ 
  td 
  > 
  
              
                 </ 
  tr 
  > 
   
                 < 
  tr 
  >< 
  td  
  colspan 
  =3 
  > 
  <% 
  ... 
   mypage.showpage() '显示导航条%> 
                        <%mypage.ShowPageSizeChange() '显示更改页大小的列表%></td></tr> 
            </table>
    <td></tr></form><%
    Rs.Close()
    set rs=nothing
    CALL CLOSECONN()   %> 
  
   </ 
  table 
  > 
  
   <!-- 
  隐藏表单,用于页面导航和查询。是分页类完成分页必须的 
  --> 
  
   < 
  form  
  name 
  ="frmHidden" 
   method 
  ="get" 
   action 
  ="#" 
   ID 
  ="Form3" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   name 
  ="sys_handle" 
   value 
  ="<%=sys_handle%>" 
   ID 
  ="Hidden1" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   id 
  ="div_p" 
   name 
  ="div_p" 
   value 
  ="<%=div_p%>" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   name 
  ="flag" 
    value 
  ="" 
   ID 
  ="Hidden7" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   name 
  ="pagesize" 
   value 
  ="<%=pagesize%>" 
   ID 
  ="1" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   name 
  ="currentpage" 
   value 
  ="<%=currentpage%>" 
   ID 
  ="Hidden8" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   name 
  ="rsTotalCount" 
   value 
  ="<%=rsTotalCount%>" 
   ID 
  ="2" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   name 
  ="orderField" 
   value 
  ="<%=orderField%>" 
   ID 
  ="Hidden9" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   name 
  ="orderDir" 
   value 
  ="<%=orderDir%>" 
   ID 
  ="Hidden10" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   name 
  ="err_type_name" 
    value 
  ="<%=err_type_name%>" 
   ID 
  ="Hidden12" 
  > 
  
       < 
  input  
  type 
  ="hidden" 
   name 
  ="err_type_code" 
    value 
  ="<%=err_type_code%>" 
   ID 
  ="Hidden13" 
  > 
  
   </ 
  form 
  > 
  
   </ 
  body 
  > 
  
   </ 
  html 
  >

XDownPage2.10使用简单例子(sqlserver)_input

举报

相关推荐

0 条评论