久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

ASP中實現分頁顯示的七種方法

瀏覽:219日期:2022-06-05 16:23:56

在微軟的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對象模型的使用方法;希望能給大家在編制網頁時提供更多的選擇和參考。

標簽: ASP
主站蜘蛛池模板: 精品久久久久久久久久久久久久久久久久 | 成人精品一区二区三区中文字幕 | 黄色一级视 | 中文av字幕 | 久久久综合网 | 不用播放器的免费av | 免费一区二区三区视频在线 | 亚洲夜幕久久日韩精品一区 | 偷拍自拍第一页 | 欧美精品一区二区三区在线四季 | 欧美日本一区 | 午夜影院在线观看视频 | 欧美日本亚洲 | 欧美日韩精品免费观看视频 | 亚洲免费视频网站 | 在线高清av | 综合久久99 | 在线观看国精产品二区1819 | 综合久久99 | av毛片| 亚洲精品国产一区 | 国产在线小视频 | 亚洲欧美日韩国产综合精品二区 | 国产精品一区二区三区在线播放 | 亚洲视频在线免费观看 | 精品久久久久久久久久久 | 成人在线免费观看视频 | 国产区精品在线 | 99看片| 日韩在线成人av | 免费毛片大全 | 日韩视频网 | 国产精品亚洲欧美日韩一区在线 | 日韩成人在线一区 | 日韩成人国产 | 夫妻午夜影院 | 亚洲第一av网站 | 中文字幕在线观看 | 在线免费观看成年人视频 | 电家庭影院午夜 | 国产黄色在线观看 | 中文字幕一区二区在线观看 | 亚洲一区二区av | av在线日韩 | 亚洲综合视频一区 | 国产成人精品免费视频大全最热 | 亚洲视频在线观看 | 国产成人精品久久二区二区91 | 黄色片视频在线观看 | 欧美日韩视频第一页 | 五月天中文字幕 | 成人黄色在线视频 | 日韩超级大片免费看国产国产播放器 | 看片国产| 极品白嫩少妇无套内谢 | 国产精品久久国产愉拍 | 中文字幕视频在线观看 | 狠狠操综合网 | 日日做夜夜爱 | 麻豆沈芯语在线观看 | 亚洲一二三区在线观看 | 亚洲这里只有精品 | 日韩一区二区三区在线 | 欧美日韩精品在线 | 免费观看毛片 | 日韩电影a | 欧美a v在线播放 | 久久国产精品久久 | 99色综合| 国产视频一区二区三区四区 | 欧美精品一区二区三区在线四季 | 国产精品久久久久久久久久久不卡 | 嫩呦国产一区二区三区av | 黄色一级毛片免费 | 欧美成人一区二区三区 | 精品国产乱码一区二区三区 | 午夜视频在线观看网站 | 亚洲三区在线观看 | 国产成人高清视频 | av午夜电影 | 97色综合| 日韩在线播 | 一本一本久久a久久精品综合妖精 | 日韩在线不卡 | 在线观看中文 | 国产最新精品 | 国产亚洲久久 | 久久一道本 | 久久这里只有精品23 | 国产96在线观看 | 中文字幕在线免费看 | 国产精品美女久久久久久免费 | 欧美视频精品 | 成年人在线观看视频 | 毛片网站在线观看 | 91免费观看 | 午夜精品| 理论片91 | 免费观看黄色一级大片 | 成人午夜毛片 | 成人二区 | 日韩视频一区二区三区 | 国产一区二区久久 | 日韩视频在线一区 | 婷婷在线视频 | 国产成人精品午夜 | 91不卡| 欧洲精品一区 | 日本久久精品电影 | 精品国产一区二区三区久久久蜜月 | 在线免费色视频 | 欧州一区二区 | 欧美日韩在线第一页 | 国产极品探花 | 午夜精品久久久久久久星辰影院 | 天天色天天 | 欧美自拍网 | 美女午夜视频 | 久久久久国产一级毛片高清版小说 | 中文字幕在线视频网站 | 国产一级特黄毛片在线毛片 | 中文字幕在线观看2021 | 欧美不卡一区二区三区 | 亚洲三级在线观看 | 在线欧美视频 | 亚洲精品一二区 | 99视频在线 | 久久99久久久久久 | a在线观看免费视频 | 天天插天天操 | 国产精品久久久久久久午夜 | 日韩精品一区二区三区在线 | 国产精品永久免费 | 欧美日韩午夜精品 | 国产精品久久久久久久粉嫩 | 欧美午夜一区二区三区免费大片 | 久久久久国产一区二区三区四区 | 欧美性福 | 午夜精品福利在线观看 | 亚洲一区精品在线 | 中文字幕乱码亚洲精品一区 | 国产精品久久久久久 | 欧美午夜一区二区三区免费大片 | 亚洲视频 欧美视频 | 中文字幕国产视频 | 亚洲日日操 | 日韩一区二区三区av | 久久99这里只有精品 | 欧美日韩精品在线 | 黄色a级| 国产在线网站 | 91麻豆产精品久久久久久 | 欧美一区二区三区在线视频观看 | 91精品久久久久久久久久 | 欧美精品一二三 | 精品久久久久久久 | 桃色五月| 中文字幕一区在线观看视频 | 在线观看国产精品一区 | 国产视频一区二区 | 中文字幕乱码一区二区三区 | 国产成人久久精品一区二区三区 | 欧美成人一区二区三区片免费 | 亚洲免费在线观看 | 日韩专区一区二区三区 | 国产一区二区久久 | 日日干夜夜操 | 成人在线观看h | 天天草综合 | 久久精品一级 | 亚洲一区二区精品视频 | 精品久久97| www国产在线观看 | 成人在线一区二区三区 | 日韩视频在线一区 | 亚洲欧美视频一区 | 成人av高清在线观看 | 成人免费xxxxxx视频 | 亚洲成人免费 | www.一区 | 在线观看你懂的网站 | 色综久久| 精品久久久久一区二区国产 | 亚洲国产一区二区在线 | 夫妻午夜影院 | 九九香蕉视频 | 一区二区中文字幕 | 国产精品毛片久久久久久 | 国产乱人伦av在线a 天天碰天天操 | a√天堂资源在线 | 日韩欧美在线视频播放 | www.国产| 日韩性欧美 | 你懂的免费在线观看 | 欧美精品一区自拍a毛片在线视频 | 久久在线视频 | 欧美一级特黄aaaaaa大片在线观看 | 成人精品一区二区 | www.夜夜骑 | 亚洲精品一二三区 | 日韩久久精品 | 日本私人网站在线观看 | 国产一级片在线 | 精品国产乱码久久久久久88av | 日韩日韩日韩日韩日韩日韩日韩 | 色婷婷一二三 | 最近免费中文字幕在线视频2 | 国产亚洲精品久久久久久久 | 国产精品免费久久 | japan国产精选videos | 国产午夜精品久久久 | 亚州中文字幕 | 日韩福利在线观看 | 亚洲va中文字幕 | 亚洲一区二区三区在线视频 | 国产一区二区三区四区在线观看 | 最近中文字幕在线视频1 | 操操日| 日韩视频三区 | 欧美大片免费高清观看 | 最近最新中文字幕 | 99久久夜色精品国产网站 | 精品美女在线观看视频在线观看 | 久久精品a级毛片 | 欧美日韩国产一区二区三区不卡 | 九九热在线视频免费观看 | 亚洲一区二区精品 | 亚洲欧美高清 | 亚洲 欧美 日韩在线 | 久久99深爱久久99精品 | 国产一级片a | 一级人爱视频 | 国际精品久久 | av性色| 精品二区视频 | 日日干狠狠干 | 成人欧美 | 久久久久久国产精品 | 波多野结衣先锋影音 | 精国产品一区二区三区 | 亚洲影视一区二区 | 国产精品免费视频观看 | 欧美在线视频一区二区 | 欧美一级毛片免费观看 | 色www精品视频在线观看 | 青青伊人久久 | 99热播在线 | 国产噜噜噜噜噜久久久久久久久 | 中文字幕在线免费播放 | 日韩一级黄色大片 | 一区毛片 | 亚洲视频一区二区三区 | 欧美成人一区二区 | 亚洲乱码国产乱码精品精98午夜 | 久久se精品一区精品二区 | 欧美a网| 国产精品无码永久免费888 | 2020国产在线| 国产福利电影一区 | 亚洲一区二区 | 天天干 夜夜操 | 欧美性大战久久久久久久蜜臀 | 日韩三级在线免费观看 | 成人欧美一区二区三区白人 | 国产特级毛片 | 毛片网页 | 天天爽夜夜爽夜夜爽精品视频 | 91精品国产乱码久久久久久久久 | 日本成人中文字幕在线观看 | 国产一级特黄视频 | 亚洲一区二区三区免费视频 | 国产欧美综合视频 | 中文字幕加勒比 | 亚洲免费视频一区二区 | 精品久久久久久久久久久久久久 | 久久6| 草草视频在线免费观看 | av一区二区在线播放 | 免费视频一区二区三区在线观看 | 欧美福利一区二区三区 | 热99这里只有精品 | 精品乱子伦一区二区三区 | 欧美一级黄色片免费看 | 日韩一区二区不卡 | 亚洲欧洲精品成人久久奇米网 | 日韩高清中文字幕 | 欧美日韩另类在线 | a一级黄 | chengrenzaixian| 香蕉久久夜色精品国产使用方法 | 一区二区三区在线播放 | 国产目拍亚洲精品99久久精品 | 欧美精品成人一区二区三区四区 | 日韩精品视频免费专区在线播放 | 国产成人精品综合 | 国产精品精品视频一区二区三区 | 久久伊人av| 伊人网站在线 | 国产三级精品在线 | 国产看片网站 | 欧美精品一二三 | 久久久国产精品 | 精品一区二区三区不卡 | 国产不卡视频 | 国产精品视频 | 欧美日韩h | 91超碰caoporm国产香蕉 | 日本在线视频观看 | 在线观看v片 | 国产传媒在线观看 | 在线视频成人 | 国产成人精品综合 | 91资源在线观看 | 日韩拍拍 | 黄色一级片黄色一级片 | 91久久久久久久久 | 亚洲精品在线视频观看 | 我看午夜视频 | 国产精品一区二区不卡 | 日本高清视频在线播放 | 中文字幕日本视频 | 亚洲欧美视频在线 | 成人在线免费 | 曰本人一级毛片免费完整视频 | 亚洲高清一区二区三区 | 久久久xxxx | 亚洲午夜性视频 | 黑人粗黑大躁护士 | 午夜精品久久久久久久白皮肤 | 日韩中文字幕av | 色婷婷亚洲一区二区三区 | 手机看片国产精品 | 9999亚洲| 成人午夜在线 | 国产激情在线观看视频 | 久久av网址| 欧美黄色网 | www.麻豆视频 | 北条麻妃一区二区免费播放 | 韩国精品一区 | 久久一区二区精品 | 日韩在线观看高清 | 日韩欧美国产一区二区三区 | 九色 在线 | 一区二区三区国产在线 | 亚洲欧美综合精品久久成人 | 亚洲网站在线免费观看 | 欧美在线视频不卡 | 中文字幕在线播放一区 | 久久久久久免费视频 | 精品国产不卡一区二区三区 | 青草青草久热精品视频在线观看 | 亚洲一区中文 | 国产精精品 | 日韩在线免费视频 | 91在线电影 | 亚洲一区二区三区四区五区中文 | 亚洲网站在线免费观看 | 综合色久 | 国产免费观看一区二区三区 | 在线免费观看成年人视频 | 91免费国产 | 久久九 | 超碰一区二区三区 | 日韩特黄一级欧美毛片特黄 | 欧美不卡 | 久久久久久久久一区 | 亚洲成人精品在线 | 欧美日韩精品一区二区三区 | 激情一区二区三区 | 亚洲精品自在在线观看 | 久久99精品久久久久久久青青日本 | 黄瓜av | www亚洲成人| 一区二区免费视频 | 一区二区免费看 | 久久日韩 | 国产精品99久久免费观看 | 中文字幕在线观看免费 | 午夜看片在线观看 | 一级黄色片看看 | 精品一区二区三区免费 | 伊人久久综合 | 欧美成视频 | 亚洲二区在线 | 成人国产| 国产中文字幕一区 | 亚洲福利在线播放 | 欧美日韩国产在线播放 | a网站在线观看 | 亚洲国产成人久久综合一区,久久久国产99 | 91亚洲免费视频 | 国产精品视频入口 | 免费a视频| 午夜精品久久久久久久久 | 日韩精品专区 | 亚洲午夜一区 | 国产精品久久久久久久久免费丝袜 | 四虎久久精品 | 国产免费av网站 | 日本久久精品视频 | 在线视频亚洲 | 久久久成人精品视频 | 精品国产一区二区三区日日嗨 | 亚洲免费观看视频 | 国产视频精品视频 | 国产午夜久久 | ririsao亚洲国产中文 | 亚洲中出 | 国产精久 | 三区视频 | 日韩久久久久久 | 成人一级黄色大片 | 一区二区三区视频 | 天堂一区二区三区 | 视频一区二区三区在线播放 | 毛片网站在线观看 | 女人久久久久久久 | 理伦影院| 国产91网 | 久久久久国 | 欧美日韩国产一区 | 久久久久久免费精品 | 久久国产精品久久 | 午夜视频福利 | 成人精品一区 | 麻豆自拍偷拍 | 欧美日韩国产一区二区 | 一区二区在线视频 | 亚洲精品久久久久国产 | 日本精品一区 | 嫩草影院懂你的 | 亚洲精品免费观看 | 午夜精品久久久久久久男人的天堂 | 成人免费xxxxxx视频 | 黄久久久| 羞羞视频在线观看免费 | 亚洲视频精品一区 | 午夜精品久久久久久久星辰影院 | 久久精品欧美一区二区三区不卡 | 欧洲精品久久久 | 黄色大片网站在线观看 | 久久国产精品一区二区 | 欧美一区二区三区爽大粗免费 | 欧美日韩午夜精品 | 精品三级在线观看 | 亚洲欧美中文字幕 | 欧美成人一区二免费视频软件 | 亚洲精品日韩综合观看成人91 | 国产欧美综合一区二区三区 | 免费在线观看av的网站 | 狠狠操综合网 | 91精品一区二区 | 三级黄色片在线免费观看 | 一区二区三区四区视频 | 天天艹综合| 91精品国产一区二区三区蜜臀 | 一区二区三区免费网站 | 国产亚洲一区二区三区在线 | 中文字幕亚洲一区二区三区 | 亚洲精品乱码久久久久久花季 | 91超碰在线播放 | 国产成人精品免高潮在线观看 | 一区二区三区国产 | 品久久久久久久久久96高清 | 久久久蜜桃 | 国产精品夜色一区二区三区 | 99爱在线观看 | 国产日韩视频在线观看 | 国产中文在线 | 羞羞的视频在线免费观看 | 欧美日韩精品一区二区三区在线观看 | 人人看人人插 | 日韩精品一区二区在线观看视频 | 国产精品免费在线 | 91欧美| 亚洲精品一区 | 伊人春色网 | 日日骚 | 亚洲综合视频在线 | 午夜三区 | 在线精品一区 | 亚洲精品91| 曰韩中文字幕 | 欧美午夜精品久久久久久浪潮 | 高清国产午夜精品久久久久久 | 国产精品久久久久久久久岛 | 欧美一级h | 国产96视频 | 国产视频精品视频 | 日韩成人免费视频 | 狠狠狠色丁香婷婷综合久久五月 | 成人亚洲视频 | 国产精品久久久久9999赢消 | 成人狠狠干 | 中文字幕精品一区 | 在线国产区 | 亚洲精品视频区 | 亚洲一区免费观看 | 国产一级毛片在线视频 | 国产成人免费视频网站视频社区 | 在线激情视频 | 国产精品久久久久久亚洲调教 | 国产精品自产拍在线观看 | 日韩欧美中文在线 | 91高清视频在线观看 | 99久久99 | 日韩精品一区二区三区第95 | 欧美成年人视频 | 久久夜精| 日日干夜夜骑 | 天堂网色 | 香蕉大人久久国产成人av | 免费国产黄 | 超碰中文字幕 | 国产欧美一区二区精品性色 | 国产精品视频一区二区免费不卡 | 在线精品亚洲欧美日韩国产 | 毛片免费在线观看 | 夜夜夜操 | www中文字幕| 久久99久久99精品 | www.久久.com| 欧美在线观看免费观看视频 | 男人亚洲天堂网 | 国精产品一区二区三区黑人免费看 | 五月天婷婷国产精品 | 91免费版在线观看 | 夜夜骑日日操 | 91看片淫黄大片一级在线观看 | 午夜精品一区二区三区免费视频 | 成人免费在线视频 | 毛片免费看 | 日韩在线成人av | 欧美香蕉 | 一区二区视频在线观看 | 午夜激情视频在线观看 | 亚洲一区在线视频 | 亚洲视频在线观看一区二区三区 | 国产日韩欧美精品一区二区 | 欧美日在线| 国产一区在线免费 | 日韩成人在线视频 | 日本精品在线观看 | 国产h视频在线观看 | 精品一区二区三区久久 | 成人深夜在线观看 | 日韩成人在线视频 | 看亚洲a级一级毛片 | 免费视频二区 | 色视频一区二区三区 | 国产一级一级特黄女人精品毛片 | 久9久9| 欧美一级片在线 | 国产精品久久久av | 久久国产精品一区 | 91精品国产777在线观看 | 成年人免费看片 | 久久99精品久久久久久琪琪 | 日本美女一区二区 | 国产99久 | 国产精品一区二区三区在线播放 | 91免费在线 | 久久成人精品 | 亚洲一区二区三区免费 | 亚州综合| 国产欧美在线观看 | 亚洲欧美第一页 | 久久久精品一区二区 | 91资源在线| 这里有精品在线视频 | 午夜男人网 | 日韩欧美精品一区 | 欧美影| 精品www| 欧洲精品在线视频 | 久久久精品高清 | 久久久久久久成人 | 国产精品成人国产乱一区 | 国产精品无码永久免费888 | 综合 欧美 亚洲日本 | 精品免费国产 | 国产精品一区二区免费 | 精品一区二区视频 | 久久久久久久久久久成人 | 一本色道久久综合狠狠躁篇的优点 | 国产一区二区免费 | 欧美日韩一区二区三区四区 | 亚洲精品视频在线 | 久久亚洲综合 | 欧洲亚洲一区 | 久久中文字幕一区二区 | 999精品在线 | 成人精品在线观看 | av影音在线 | 欧美日韩视频在线观看免费 | 狠狠91 | av久久 | 国产va| 在线观看成人网 | 人人澡人人射 | 国产真实乱全部视频 | 国产欧美在线播放 | 日韩综合 | 精品久久久久久久久久久久 | www.黄网 | 午夜视频在线观看网站 | 天天干天天干天天干天天射 | 伊人伊人网| 亚洲成人一区二区三区 | www中文字幕| 拍拍无遮挡人做人爱视频免费观看 | 在线成人www免费观看视频 | 精品国产一区二区三区高潮视 | 九九国产精品视频 |