当前位置:首页 » 云服务器 » 服务器网口太多如何分页显示

服务器网口太多如何分页显示

发布时间: 2022-09-10 05:18:21

Ⅰ 命令行cat 出来内容太多怎么分页显示

1、cat最基本的用法就是查看文件的内容。

Ⅱ .NET MVC + sqlsugar 怎么实现分页显示

其实个人认为不管是Asp.NET MVC还是普通的Web程式,上传现实进度条这个功能都是很大一部分人都在期待解决的问题。针对B/S模式的上传,如果需要实时的了解到上传的进度的话,这对服务器(IIS)压力是非常大的,当然针对这样子的实现时有的,比如
NeatUpload等,这都是基于Asp.Net来开发的开源上传组件,他们上传时显示的进度条都是实时,实现的方式是,在页面中创建了一个iframe,定是的来刷新服务器端上传的进度,然后在客户端显示上传进度。<个人不建议采用这样子的方式,因为如果使用该方式的话,会对服务器端资源消耗过大

Ⅲ 服务器有两个网口,怎么实现普通员工和管理者访问分开

你可以在服务器上面做设置,可以划分一个vlan,一个网口一个vlan这样可以将两个网口的网络,在实际上,划分出来,员工用一个网口管理层,用一个网口就可以实现普通员工和管理者的分开访问

php网页中内容太多如何让他自动分页

<?php /* PHP动态分页测试代码 */ //代码开始↓ if(empty($page)) $page=0; //默认页码值为0(即第一页) $total=152; //整体要显示的条目总数 $pagenum=10; //每页显示条目数 //写各页的内容(可以处理其他事件) for($i=$page*$pagenum;$i<$page*$pagenum+$pagenum;$i++){ $tmpstr="第 ". ($i+1) ." 条记录"; if($i<$total) print "$tmpstr<br>"; } //end of for //得到总页数 $tpage 的值 if($total%$pagenum==0) { //若被整除 $tpage=$total/$pagenum; } else { //否则用floor函数取得最大整数然后+1 $tpage=floor($total/$pagenum)+1; } //智能化的前进后退+段页码方式实现超链 $id_pd=floor($page/5)*5; //当前页页码数段初始id值 $startpagepre=$id_pd-5; $startpagenext=$id_pd+5; $lastpage=$tpage-1; print "<p>"; //处理首页(<<)和前五页(<) if($page==0){ print "<span style=\"color:red\"><<</span> "; }else{ print "<a title=\"首页\" href=\"$php_self?page=0\"><<</a> "; } if($page<5){ print "<span style=\"color:red\"><</span> "; }else{ print "<a title=\"前五页\" href=\"$php_self?page=$startpagepre\"><</a> "; } //写页段中的页码超链 for($i=$id_pd;$i<$id_pd+5;$i++){ $pg=$i+1; //页码数 if($i==$page){ if($i<$tpage) print "<span style=\"color:red\">$pg</span></a> "; }else{ if($i<$tpage) print "<a href=\"$php_self?page=$i\">$pg</a> "; } } //处理后五页(>)和尾页(>>) if($page>$tpage-5){ print "<span style=\"color:red\">></span> "; }else{ print "<a title=\"后五页\" href=\"$php_self?page=$startpagenext\">></a> "; } if($page==$lastpage){ print "<span style=\"color:red\">>></span> "; }else{ print "<a title=\"尾页\" href=\"$php_self?page=$lastpage\">>></a> "; } print "总页数 <span style=\"color:red\">$tpage</span></p>"; ?>

Ⅳ ligerui如何实现服务器分页

ligerui
自身就支持分页,只要服务器端拿分页的信息就可以,如分页大小、第几页

http://www.ligerui.com/api/document/Grid/parms.htm

Ⅵ ADO查询数据库时怎么分页展示数据

其实方法有很多,但主要有两种:
一、将数据库中所有符合查询条件的记录一次性的都读入 recordset 中,存放在内存中,然后通过 ADO Recordset 对象所提供的几个专门支持分页处理的属性: PageSize( 页大小 )、 PageCount( 页数目 ) 以及 AbsolutePage( 绝对页 ) 来管理分页处理。
二、根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记录数读取出来并显示。
两者的主要差别在于前者是一次性将所有记录都读入内存然后再根据指示来依次做判断分析从而达到分页显示的效果,而后者是先根据指示做出判断并将规定数目的符合查询条件的记录读入内存,从而直接达到分页显示的功能。
我们可以很明显的感觉到,当数据库中的记录数达到上万或更多时,第一种方法的执行效率将明显低于第二种方法,因为当每一个客户查询页面时都要将所有符合条件的记录存放在服务器内存中,然后在进行分页等处理,如果同时有超过 100 个的客户在线查询,那么 ASP 应用程序的执行效率将大受影响。但是,当服务器上数据库的记录数以及同时在线的人数并不是很多时,两者在执行效率上是相差无几的,此时一般就采用第一种方法,因为第一种方法的 ASP 程序编写相对第二种方法要简单明了得多。

在这里作者就以我们常见的 ASP BBS 程序为例,来给大家分析一下如何在 BBS 程序里实现分页显示功能,由于我们一般使用的 BBS 程序的数据库记录数和同时访问的人数都不会太多,所以以下程序实例是使用的先前所介绍的第一种分页显示方法。

进行 ADO 存取数据库时的分页显示,其实就是对 Recordset 的记录进行操作。所以我们首先必须了解 Reordset 对象的属性和方法:
BOF 属性:目前指标指到 RecordSet 的第一笔。
EOF 属性:目前指标指到 RecordSet 的最后一笔。
Move 方法:移动指标到 RecordSet 中的某一条记录。
AbsolutePage 属性:设定当前记录的位置是位于哪一页 AbsolutePosition 属性:目前指标在 RecordSet 中的位置。
PageCount 属性:显示 Recordset 对象包括多少“页”的数据。
PageSize 属性:显示 Recordset 对象每一页显示的记录数。
RecordCount 属性:显示 Recordset 对象记录的总数。

Ⅶ (问题解决再追加100分)sql server存储过程实现查询数据条数过大,分页查询怎么实现

按说5-8w这样数量级的数据没有问题,写入Excel是布比较耗性能,主要还是要通过优化写入Excel的代码效率上去考虑。你可以考虑利用分批查询写入的方式来避免一次写太多的数据到Excel:将你的查询结果分段,比方你的语句中能不能用时间来认为分段,每次返回部分结果。
回到你的问题,对大数据量查询的解决方案有以下两种:
(1)、将全部数据先查询到内存中,然后在内存中进行分页,这种方式对内存占用较大,必须限制一次查询的数据量。
(2)、采用存储过程在数据库中进行分页,这种方式对数据库的依赖较大,不同的数据库实现机制不通,并且查询效率不够理想。以上两种方式对用户来说都不够友好。

2.解决思路
通过在待查询的数据库表上增加一个用于查询的自增长字段,然后采用该字段进行分页查询,可以很好地解决这个问题。下面举例说明这种分页查询方案。

(1)、在待查询的表格上增加一个long型的自增长列,取名为“queryId”,mssql、sybase直接支持自增长字段,oracle可以用sequence和trigger来实现。然后在该列上加上一个索引。
添加queryId列的语句如下:
Mssql: [QUERYID] [bigint] IDENTITY (1, 1)

Sybase: QUERYID numeric(19) identity

Oracle:
CREATE SEQUENCE queryId_S
INCREMENT BY 1
START WITH 1
MAXVALUE 999999999999999 MINVALUE 1
CYCLE
CACHE 20
ORDER;
CREATE OR REPLACE TRIGGER queryId_T BEFORE INSERT
ON "test_table"
FOR EACH ROW
BEGIN
select queryId_S.nextval into :new.queryId from al;
END;

(2)、在查询第一页时,先按照大小顺序的倒序查出所有的queryId,
语句如下:select queryId from test_table where + 查询条件 +order by queryId desc 。
因为只是查询queryId字段,即使表格中的数据量很大,该查询也会很快得到结果。然后将得到的queryId保存在应用服务器的一个数组中。

(3)、用户在客户端进行翻页操作时,客户端将待查询的页号作为参数传递给应用服务器,服务器通过页号和queyId数组算出待查询的queyId最大和最小值,然后进行查询。

算出queyId最大和最小值的算法如下,其中page为待查询的页号,pageSize为每页的大小,queryIds为第二步生成的queryId数组:
int startRow = (page - 1) * pageSize
int endRow = page * pageSize - 1;
if (endRow >=queryIds.length)
{
endRow = this.queryIds.length - 1;
}
long startId =queryIds[startRow];
long endId =queryIds[endRow];

查询语句如下:
String sql = "select * from test_table" + 查询条件 + "(queryId <= " + startId + " and queryId >= " + endId + ")";

3.效果评价
该分页查询方法对所有数据库都适用,对应用服务器、数据库服务器、查询客户端的cpu和内存占用都较低,查询速度较快,是一个较为理想的分页查询实现方案。经过测试,查询4百万条数据,可以在3分钟内显示出首页数据,以后每一次翻页操作基本在2秒以内。内存和cpu占用无明显增长。

以上也仅仅是分页查询结果查看的问题,你需要写入到Excel的话还需要考虑Excel写入代码的执行效率,这部分是很值得研究的。

Ⅷ asp如何实现内容分页

我就说7点:
在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的

Recordset对象使得控制数据的输出显示更为方便、自由。而在Visual InterDev6.0(以下简称VI6.0)中,

由于Script Object Model(以下简称SOM)、Design-Time Control(以下简称DTC)以及Data Environment

Object Model(以下简称DEOM)等对象模型的引入,使网页对数据库的访问设计显得更为方便。

因为主题方面的原因,关于数据库的连接,下文只给出代码和简要注释,而把重点放在如何利用

Recordset对象(或控件)实现数据记录的分页显示方面。根据我的理解,分页显示的关键就在于对ADO的

Recordset对象或DTC(设计时控件)的Recordset控件的属性和方法的熟练把握上。

这七种分页显示的武器概括起来说分四类:

第一、二种我暂取名叫“纯ASP法”,这也是国内的ASP网站上用得最多的方法,它们的区别仅在实现

技巧的不同。这两种方法的实现最易理解,用到的对象概念也最少,对开发环境的要求也最低(只要记事

本就行)。可以说,这两种方法的实质还是CGI的编程思想,只是在程序中引入了ADO对象而已。

第四、五种暂取名叫“SOM的DHTML法”。这两种方法要求在VI6.0的环境下,利用微软提出的脚本

象模型(Script Object Model)和DHTML中Table对象的与数据库绑定的新特性(许多书和文章只介绍了

DHTML的CSS特性在样式设计中的运用而忽略介绍其数据绑定特性),实现在客户端控制翻页。但它要求用

户的浏览器必须是支持DHTML,如:Microsoft Internet Explorer 4.0及以上的版本。

第六种暂取名叫“SOM服务器端法”。要求在VI6.0的环境下开发,它利用微软提出的脚本对象模型(

Script Object Model)中的几个DTC控件:Recordset、PageObject、Grid等在服务器端(客户端)实现翻

页控制。这是一种激动人心的、全新的编程方法,它把网页看成对象(这种对象模型和传统的DOM----

document object model是有区别的:DOM只能控制客户端,而SOM可控制服务器端和客户端),它真正实现

了网页的面向对象编程。但遗憾的是,也许是我个人能力有限,这种技术我个人认为还不是很成熟,比如

,与浏览器的结合还不是很好,这将在后文详细说明。

第七种暂取名叫“DEOM法”。它也是利用了VI6.0中建立的数据环境对象模型(Data Environment

Object Model)建立Recordset对象。这也是在网页编程上比较少见的新方法,与SOM模型相比,自有它的

优点,这将在后文详述。

在后面所举的所有例子源代码,都可以直接拷贝使用,你甚至可以不懂其原理,只要把其中的粗斜体

字部分换成相应自己的数据库名或字段名就可以了。

在开始详细介绍各种分页方法前,让我们先创建一个数据库:用Office97中的access自创一个

Employee.mdb,其中建一个表emp,只设三个字段:emp ID,last name和first name。为什么这么简单,

是因为我们关心的是怎样处理recordset的结果。

第一种:参数直接代入法

这种方法是用手工建立Recordset对象,利用其pagesize(每页指定显示记录数),pagecount(总页

码数)和absolutepage(当前页码数)属性来控制分页的输出。分页采用<href>直接带页码参数的方法

来控制翻页。网页的名字为emp1.asp。源代码如下:

<%//建立与employee.mdb数据库的连接。
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=employee.mdb"
//建立emp表的Recordset对象实例rs。
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "emp", conn, 3

PageSize = 10 //pagesize属性指定了每页要显示的记录条数
Page = CLng(Request("Page")) ’string型转化为long型
If Page < 1 Then Page = 1
If Page > rs.PageCount Then Page = rs.PageCount
If Page <> 1 Then
Response.Write "<A HREF=emp1.asp?Page=1>第一页</A>�"
Response.Write "<A HREF=emp1.asp?Page=" & (Page-1) & ">上一页</A>�"
End If
If Page <> rs.PageCount Then
Response.Write "<A HREF=emp1.asp?Page=" & (Page+1) & ">下一页</A>�"
Response.Write "<A HREF=emp1.asp?Page="&rs.PageCount & ">最后一页</A>�"
End If
Response.write"页码:" & Page & "/" & rs.PageCount & "</font>"
//每一页的显示
//显示表头
Response.Write "<CENTER><TABLE BORDER=1>"
Response.WRITE "<TR><TD>" & rs.Fields("emp ID").Name & "</TD>"
Response.WRITE "<TD>" & rs.Fields("last name").Name & "</TD>"
Response.WRITE "<TD>" & rs.Fields("first name").Name & "</TD></TR>"
//循环显示每条记录
rs.AbsolutePage = Page //把页码赋给absolutepage属性从而知当前页的首条记录号
For iPage = 1 To rs.PageSize //
Response.WRITE "<TR><TD>" & rs.Fields("emp ID").Value & "</TD>"
Response.WRITE "<TD>" & rs.Fields("first name").Value & "</TD>"
Response.WRITE "<TD>" & rs.Fields("last name").Value & "</TD></TR>"
rs.MoveNext
If rs.EOF Then Exit For
Next
Response.Write "</TABLE></CENTER>"%>

第二种:表单传送参数法

这种方法在创建Recordset对象时与第一种相同,只是在翻页控制时,采用<input>和case语句配合

来实现翻页。网页的名字为:emp2.asp。此方法在编程逻辑上有个缺点:就是在按过“上页”或“下页”

钮后,再在浏览器上按刷新按钮时,会自动翻页。源代码如下:

if Pagenum = "" Then Pagenum = 1 //从第一页开始显示
//建立数据库连接和Recordset对象实例rs。
与第一种方法相同,此处略过。

RS.Pagesize = 10 ’ 设置一页中显示的记录条数为10条
// 确定翻页的动作
Select Case Request("NAV")
Case ""
session("Pagenum") = 1
case "First" ’ First Record
session("Pagenum") = 1
case "Prev" ’ Previous Record
if session("Pagenum") > 1 then
session("Pagenum") = session("Pagenum") - 1
End If
case "Next" ’ Next Record
if session("Pagenum")< RS.PageCount then
session("Pagenum") = session("Pagenum") + 1
End if
case "Last" ’ Last Record
session("Pagenum") = RS.PageCount
End Select
RS.Absolutepage = Clng(session("Pagenum")) //确定当前页的第一条记录号
// 显示当前页
同第一种方法,此处略过。
// Nav 翻页按钮设置
<form method="GET" action="emp2.asp">
<input type="submit" name="NAV" Value="首页">
<input type="submit" value="上页" name="NAV">
<input type="submit" value="下页" name="NAV">
<input type="submit" value="末页" name="NAV"></form>

第三种:用Grid控件设计分页

所有的方法中,这种方法最容易。你只需拖DTC中的Recordset控件和Grid控件到asp网页中就行了。

而且,你还能选择是在服务器平台还是在客户端平台控制翻页。缺点就是你必须用它给定的格式显示,而

不能自己自由控制表格的显示格式。

方法如下:

在VI6.0中建一个工程emp.vip。再在工程中添加一个asp网页:emp3.asp。

第一步:选VI6.0菜单条上的“add data connect…”,按开发工具的导航提示,你就可以很容易地

建立与Employee.mdb数据库的连接。从DTC工具栏中拖一个Recordset控件到网页中,并设置其属性。具体

如图:

当你拖控件到网页中时,VI6.0会自动提示你“是否使用Scripting object model”,按yes。

第三步:从DTC工具栏中拖一个Grid控件到网页中,然后单击鼠标右键,设置其属性,如:选在第二

步中创建的Recordset控件名,选择emp表中的字段,每页显示多少条记录以及显示格式等。非常简单方便

,只要照着导航提示做就行了。

第四种:DHTML法一。

数据记录显示在一个HTML表中。它利用DHTML中表的数据绑定特性来控制记录的分页显示。缺点就是

你的翻页方法将被限制为一种特定的方式:只能“上页”和“下页”而不能“首页”和“末页”。由于是

在客户端控制翻页,所以,这种和第五种方法是速度最快的,但遗憾的是它只能在支持DHTML的浏览器上

使用。

在DHTML中,<TABLE>的DATASRC属性可使表格绑定到一个数据源,另一个属性DATAPAGESIZE可指定

一页一次显示的记录数。

我们来看下面的例子:

第一步:拖Recordset控件到新建的网页emp4.htm中,设置其属性,方法同第三种,此处略。

第二步:输入下面的代码:

<TABLE ID="Table1" DATASRC="#Recordset1_RDS" DATAPAGESIZE=5> //假定前面设定Recordset控件名

为Recordset1。每页显示5条记录。
<THEAD>
<TH ALIGN="left" WIDTH=150>Emp ID</TH> //输出表头
<TH ALIGN="left" WIDTH=200>Last Name</TH>
<TH ALIGN="left" WIDTH=200>First Name</TH>
</THEAD>
<TR>
<TD><DIV DATAFLD="Emp ID"></DIV></TD> //输出表内容
<TD><DIV DATAFLD="Last Name"></DIV></TD>
<TD><DIV DATAFLD="First Name"></DIV></TD>
</TR>
</TABLE>

第三步:然后,增加一对DTCs Button按钮控件来做翻页导航,一个命名为“btnPrevious”(上一页

),一个命名为“btnNext”(下一页)。它们相应的脚本如下:

<SCRIPT LANGUAGE=VBScript>
Function btnPrevious_onclick()
Table1.previousPage()
End Function

Function btnNext_onclick()
Table1.nextPage()
End Function
</SCRIPT>

第五种:DHTML法二

这种方法是对第四种方法的完善。采用手工编写脚本的方法,使我们能做“首页”,“末页”翻页导

航按钮,并能确定每条记录的位置(记录号)。由于篇幅的关系,我在下面只介绍一个具体例子,并给出

简要说明。其它关于DHTML和Recordset控件的一些属性和方法请读者自行参照相关书籍。这里需要提请注

意的是,Recordset控件与第一、二种方法中介绍的ADO的Recordset对象有些不同:Recordset控件没有直

接给出pagesize和pagecount等属性,需要用下面介绍的方法来计算。

第一步:拖Recordset控件到新建的网页emp5.htm中,名字为Recordset1,设置其属性,方法同第三

种,此处略。

第二步:定义三个全局变量和编写Recordset1的ondatasetcomplete(数据设置完成时)脚本。

Dim gCurrentPageNumber //当前页号
Dim gMaxPageNumber //最大页数
Dim gRecordsPerPage //每页显示记录数
gRecordsPerPage = 5 // 设置每页显示记录数为5条记录。

Function Recordset1_ondatasetcomplete()
totalRecordCount = Recordset1.getCount() //总的记录条数
gMaxPageNumber = Int(totalRecordCount / gRecordsPerPage) //获得最大页数
If (totalRecordCount Mod gRecordsPerPage) > 0 then
gMaxPageNumber = gMaxPageNumber + 1
End If
End Function

第三步:创建翻页导航按钮。

Function btnFirst_onclick() ’ 翻到首页
gCurrentPageNumber = 1
DisplayData()
End Function

Function btnPrevious_onclick() ’ 翻到上一页
if gCurrentPageNumber > 1 Then
gCurrentPageNumber = gCurrentPageNumber - 1
DisplayData()
End If
End Function

Function btnNext_onclick() ’ 翻到下一页
if gCurrentPageNumber < gMaxPageNumber Then
gCurrentPageNumber = gCurrentPageNumber + 1
DisplayData()
End If
End Function

Function btnLast_onclick() ’翻到末页
gCurrentPageNumber = gMaxPageNumber
DisplayData()
End Function

第四步:编写显示每一页的函数。其中使用了许多DHTML的属性和方法,请读者自行参考相关书籍。

Sub DisplayData()
startRecord = ((gCurrentPageNumber - 1) * gRecordsPerPage) + 1 //计算每一页开始显示的记录号

数(位置,第几条)
rowCtr = 1
lblPageNumber.innerHTML = gCurrentPageNumber & "/" & gMaxPageNumber
For recordPtr = startRecord To (startRecord + gRecordsPerPage - 1) //循环显示一页的各条记录
If recordPtr > Recordset1.getCount() Then //显示空表
Table1.rows(rowCtr).cells(0).innerHTML = "<P> </P>"
Table1.rows(rowCtr).cells(1).innerHTML = "<P> </P>"
Table1.rows(rowCtr).cells(2).innerHTML = "<P> </P>"
Table1.rows(rowCtr).cells(3).innerHTML = "<P> </P>"
Else //具体显示每一页
Recordset1.moveAbsolute(recordPtr) //移动记录指针。
empID = Recordset1.fields.getValue("emp ID")
empLName = Recordset1.fields.getValue("first name")
empFName = Recordset1.fields.getValue("last name")

Table1.rows(rowCtr).cells(0).innerText = recordPtr ’ Counter
Table1.rows(rowCtr).cells(1).innerText = empID
Table1.rows(rowCtr).cells(2).innerText = empLName
Table1.rows(rowCtr).cells(3).innerText = empFName
End If
rowCtr = rowCtr + 1
Next
End Sub

另外,我们还需要在window对象的onload事件中编写如下脚本:

For rowCtr = 1 to gRecordsPerPage
Table1.insertRow(rowCtr) ’ 插一新列
For cellCtr = 0 to 3
Table1.rows(rowCtr).insertCell()
Next
Next

第六种:服务器端控制翻页方法。

如果我们在服务器端对数据进行分页形成HTML语句后再输出到客户端,就不会存在浏览器不支持

DHTML的问题了。可是用服务器端法使得我们每次翻页时,都得让Recordset控件重新产生一次,因此速度

肯定要比用DHTML的方法慢。但如果服务器足够快的话,这点慢客户是察觉不到的。

下面的例子中,我将介绍一个新的DTC控件:PageObject。这个控件使被指定的网页成为一个网页对

象,用户在此网页的服务器脚本中组织的子程序和函数可被看作是该网页对象的方法。它提供了管理状态

信息的一种先进的方法:网页对象有一些属性(变量),用户可以定义这些属性的生存期。因为以上这些

特性,使我们在编制翻页的脚本时非常方便。

但这种方法的缺点是:当你按了“上页”或“下页”按钮后,再浏览器上的按刷新按钮,网页会自动

翻页。另外,如果按了浏览器上的“回退”按钮后,再按翻页按钮,可能会出现一次乱翻。这都是因为网

页对象属性(全局变量)造成的。

第一步:拖Recordset控件到新建的网页emp6.asp中,名字为Recordset1,设置其属性,方法同第三

种,此处略。

第二步:拖PageObject控件到网页中,取名叫emplist。然后右键单击此控件打开属性页并设置

MaxPageNumber,RecordsPerPage,CurrrentPageNumber三个属性(全局变量)。VI6.0可用get和set方法

来读写它们的值,具体用法请查阅相关资料。

第三步:编写Recordset1的ondatasetcomplete事件。

Function Recordset1_ondatasetcomplete()
recordsPerPage = 5
empList.setRecordsPerPage(recordsPerPage)//设置网页对象每页记录条数属性为5
totalRecordCount = Recordset1.getCount()//获得记录集的总条数
mpn = Int(totalRecordCount / recordsPerPage) //计算出mpn为总页数
If (totalRecordCount Mod recordsPerPage) > 0 then
mpn = mpn + 1
End If
empList.setMaxPageNumber(mpn)
End Function

第四步:拖四个button控件到网页中,编写翻页控制脚本。我们主要是通过改变网页对象的

CurrentPageNumber属性的值来实现翻页。

Function btnFirst_onclick()’ 翻到首页
empList.setCurrentPageNumber(1)
End Function

Function btnPrevious_onclick()’ 翻到上一页
cpn = empList.getCurrentPageNumber()
if cpn > 1 Then
empList.setCurrentPageNumber(cpn - 1)
End If
End Function

Function btnNext_onclick()’ 翻到下一页
cpn = empList.getCurrentPageNumber()
if cpn < empList.getMaxPageNumber() then
empList.setCurrentPageNumber(cpn + 1)
End If
End Function

Function btnLast_onclick() ’ 翻到末页
empList.setCurrentPageNumber( empList.getMaxPageNumber() )
End Function

为保证首次进入该页时,显示的是第一页,我们还得编写该网页对象的onEnter事件。

Function empList_onEnter()
If empList.firstEntered Then
empList.setCurrentPageNumber(1)
End If
End Function

第五步:编写显示每一页的脚本。

<HR><TABLE BORDER=0><TR>//显示表头
<TH ALIGN="left" WIDTH=35></TH>
<TH ALIGN="left" WIDTH=150>Emp ID</TH>
<TH ALIGN="left" WIDTH=200>Last Name</TH>
<TH ALIGN="left" WIDTH=200>First Name</TH></TR>
<%
pageNumber = empList.getCurrentPageNumber()//计算翻页所需的各种参数,同DHTML法二
recordsPerPage = empList.getRecordsPerPage()
startRecord = ((pageNumber - 1) * recordsPerPage) + 1
lastRecord = Recordset1.getCount()
For recordPtr = startRecord To (startRecord + recordsPerPage - 1)%>
<%If Recordset1.EOF = True Then%>
<TR>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
</TR>
<%Else%>
<%Recordset1.moveAbsolute(recordPtr)%>
<TR>
<% If recordPtr <= lastRecord Then %>
<TD><%=recordptr%></TD>
<%Else%>
<TD> </TD>
<% End If %>
<TD><%=Recordset1.fields.getValue("emp ID")%></TD>
<TD><%=Recordset1.fields.getValue("last name")%></TD>
<TD><%=Recordset1.fields.getValue("first name")%></TD>
</TR>
<%End If%>
<%Next%>
</TABLE><HR>

第七种:Data Environment Object Model(数据环境对象模型)法

Data Environment对象模型把ADO对象模型及它的对象----“Connection”,“Command”,

“Recordset”,“Field”以及“Parameter”对象----抽象到一个更加容易的表单中。Data

Environment Object Model把命令显露为方法。用户可以调用这些方法,这些方法会执行这些命令并返回

所得到的记录集。关于DEOM对象模型详细资料请参考相关书籍。我们来看下面网页emp7.asp的例子:

第一步:在VI6.0的“project Explorer”窗口中的工程项目上右击鼠标并从弹出式菜单选择“Add

Data Connection”。根据VI给出的导航提示建立一个到数据库的连接之后,用户就添加了一个实现从ASP

应用程序访问数据库的数据命令。同时,你将会在“Project Explorer”窗口中的global.asa文件下方看

到一个“Data Environment”对象。

第二步:右击“Data Environment”对象然后从弹出式菜单中选择“Add Data Command”选项,添加

一个数据命令Command1。根据VI6.0的导航提示,你可以在Command1 Properties弹出窗口的Genetal页中

选SQL Statement,输入:select * from emp。按OK返回。

第三步:你创建了这个数据命令后,就已经为该Data Environment对象创建了一个方法,然后就可以

从脚本中调用这个方法,而且该方法将会给用户返回一个记录集。

thisPage.createDE() //在SOM模式下,thisPage表示当前网页对象,createDE()方法创建了DE对象。
DE.Command1//执行DE对象的命令,后面可代参数,做有条件查询时很有用。
Set rs=DE.rsCommand1//DE.rscommand1使得rs对象完全等同于一个ADO的Recordset对象。

第四步:因为rs为ADO对象,所以,以下的实现翻页代码完全参照以上介绍的几种方法,此处略过。

其它还有如FrontPage2000的数据库导航中实现的方法等,因与本主题无关,此处略。

综上所述,前面介绍的每种方法都包含了很多新的技术,由于篇幅的关系,无法深入。本文只是想通

过实现翻页这一具体的例子来介绍ASP网页编程的多种方法;让大家亲身体验一下VI6.0在编制网页中的强

大功能;了解和熟悉微软在网页编程中提出的ADO、DHTML、DTC控件、SOM对象模型和DEOM对象模型的使用

方法;希望能给大家在编制网页时提供更多的选择和参考。

热点内容
手机路由器如何登陆密码 发布:2025-01-12 18:35:41 浏览:463
电光猫无法连接服务器是什么原因 发布:2025-01-12 18:32:58 浏览:512
迷你世界测试服的密码从哪里打开 发布:2025-01-12 18:25:32 浏览:109
我的世界手游tis服务器 发布:2025-01-12 18:24:28 浏览:585
青海省分布式服务器云主机 发布:2025-01-12 18:12:03 浏览:476
英雄联盟安卓手机版怎么切换 发布:2025-01-12 18:10:53 浏览:380
q5尊享时尚型哪些配置 发布:2025-01-12 18:05:41 浏览:229
安卓版本哪里下载 发布:2025-01-12 18:05:39 浏览:556
mc服务器搭建搜不到 发布:2025-01-12 17:57:37 浏览:18
手机手势密码忘了怎么办 发布:2025-01-12 17:14:51 浏览:487