您的位置:首页 > 数据库

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

2006-11-15 20:39 525 查看
 asp分页基础类XDownPage2.0只支持oracle,而 2.10已经能够支持sqlserver了。本例将演示XDownPage2.10对于sqlserver数据库的分页方法。

1 ,  分页程序代码

请详见另一篇文章:http://blog.csdn.net/precipitant/archive/2006/11/15/1386541.aspx

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 onclick=""gotoOrder('" & pOrderField & "','" & getOrderDir(pOrderField,tOrderField,tOrderDir) & "')"" class='noticetitle' style='width:90%;cursor:default'>" & pHeaderTitle & " " & writeOrderDir(pOrderField,tOrderField,tOrderDir) & "</span>"


        end sub 




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


 


 

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.CursorLocation=3 '定义记录集的属性


                     if pagesize="" then pagesize=15  '定义默认页大小


            


                     '//形成查询条件串


                     strOption="where 1=1"


                     if err_type_code<>"" then


                         strOption=strOption & " and err_type_code='"&err_type_code&"'"


                     end if


                     if err_type_name<>"" then


                         strOption=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.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


                 %> 


                     <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>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息