成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 在ASP.NET 2.0中操作數(shù)據(jù)之四十三:DataList和Repeater數(shù)據(jù)排序(二)

在ASP.NET 2.0中操作數(shù)據(jù)之四十三:DataList和Repeater數(shù)據(jù)排序(二)

熱門標簽:400電話辦理怎么樣 蘇州如何辦理400電話 臨沂智能電話機器人加盟 西寧呼叫中心外呼系統(tǒng)線路商 地圖標注軟件免費下載 聯(lián)通官網(wǎng)400電話辦理 百應電話機器人外呼系統(tǒng) 網(wǎng)絡電話外呼系統(tǒng)上海 外呼電話機器人成本

接著上篇介紹,上篇已經(jīng)通過DropDownList簡單實現(xiàn)了排序的功能,下面讓我們看看帶有分頁的排序該怎么做。

第五步: 為使用默認分頁的DataList添加排序的支持

  打開PagingSortingDataListRepeater文件夾里的SortingWithDefaultPaging.aspx和Paging.aspx 頁。在Paging.aspx 頁里查看源文件。將圖8里選擇的文本復制下來,然后粘貼到SortingWithDefaultPaging.aspx 頁里的asp:Content> 標簽內。


圖 8: 復制粘貼代碼

  然后將Paging.aspx頁后臺代碼里的屬性和方法也粘貼到SortingWithDefaultPaging.aspx頁后臺代碼里?,F(xiàn)在瀏覽SortingWithDefaultPaging.aspx頁,它現(xiàn)在應該有和Paging.aspx頁一樣的外觀和功能。

在ProductsBLL 里添加默認的分頁和排序方法

  前面一章里我們在ProductsBLL類里創(chuàng)建了一個GetProductsAsPagedDataSource(pageIndex, pageSize)方法,它返回一個PagedDataSource對象。這個對象通過BLL的GetProducts()方法獲取所有的product,然而綁定到DataList的只是那些和輸入?yún)?shù)pageIndex 和 pageSize 相關的記錄。

  本章前面我們已經(jīng)通過在ObjectDataSource的 Selecting event handler里指定sort expression來添加了排序功能。當ObjectDataSource返回可排序對象時這個方法運轉的很好,比如GetProducts()方法返回的ProductsDataTable。然而GetProductsAsPagedDataSource方法返回的PagedDataSource對象并不支持對它內部數(shù)據(jù)的排序,因此我們需要在將數(shù)據(jù)放入PagedDataSource前對GetProducts()方法返回的記錄進行排序。

  在ProductsBLL類里建一個GetProductsSortedAsPagedDataSource(sortExpression, pageIndex, pageSize)方法。指定GetProducts() 方法返回的ProductsDataTable的default DataTableView的排序屬性。

[System.ComponentModel.DataObjectMethodAttribute
 (System.ComponentModel.DataObjectMethodType.Select, false)]
public PagedDataSource GetProductsSortedAsPagedDataSource
 (string sortExpression, int pageIndex, int pageSize)
{
 // Get ALL of the products
 Northwind.ProductsDataTable products = GetProducts();
 // Sort the products
 products.DefaultView.Sort = sortExpression;
 // Limit the results through a PagedDataSource
 PagedDataSource pagedData = new PagedDataSource();
 pagedData.DataSource = products.DefaultView;
 pagedData.AllowPaging = true;
 pagedData.CurrentPageIndex = pageIndex;
 pagedData.PageSize = pageSize;
 return pagedData;
}

  GetProductsSortedAsPagedDataSource方法和前面一章里的GetProductsAsPagedDataSource方法有一點不一樣。GetProductsSortedAsPagedDataSource多了一個sortExpression參數(shù),將它的值賦給ProductDataTable的 DefaultView的Sort屬性。并將ProductDataTable的DefaultView賦給PagedDataSource對象的DataSource。

  調用 GetProductsSortedAsPagedDataSource 方法并指定輸入?yún)?shù)SortExpression的值

  完成這些后,下一步需要提供參數(shù)值。SortingWithDefaultPaging.aspx頁的ObjectDataSource現(xiàn)在被配置用來調用GetProductsAsPagedDataSource方法并通過兩個QueryStringParameters來傳遞參數(shù),這些參數(shù)在SelectParameters集合里已經(jīng)指定了。這兩個QueryStringParameters參數(shù)表示GetProductsAsPagedDataSource方法的pageIndex 和 pageSize 參數(shù)從querystring里獲取。

  修改ObjectDataSource的SelectMethod屬性,讓它調用GetProductsSortedAsPagedDataSource方法。然后添加一個新的QueryStringParameter來讓sortExpression 參數(shù)通過querystring的sortExpression字段獲取。將QueryStringParameter的默認值設為“ProductName”。

現(xiàn)在ObjectDataSource的聲明標記語言看起來應該和下面差不多:

asp:ObjectDataSource ID="ProductsDefaultPagingDataSource"
 OldValuesParameterFormatString="original_{0}" TypeName="ProductsBLL"
 SelectMethod="GetProductsSortedAsPagedDataSource"
 OnSelected="ProductsDefaultPagingDataSource_Selected" runat="server">
 SelectParameters>
 asp:QueryStringParameter DefaultValue="ProductName"
  Name="sortExpression" QueryStringField="sortExpression"
  Type="String" />
 asp:QueryStringParameter DefaultValue="0" Name="pageIndex"
  QueryStringField="pageIndex" Type="Int32" />
 asp:QueryStringParameter DefaultValue="4" Name="pageSize"
  QueryStringField="pageSize" Type="Int32" />
 /SelectParameters>
/asp:ObjectDataSource>

  現(xiàn)在SortingWithDefaultPaging.aspx頁會按照product name的字母順序排序。見圖9。這是因為GetProductsSortedAsPagedDataSource方法的sortExpression 參數(shù)的默認值為“ProductName”。


圖 9: 默認的按照 ProductName 排序

  如果你手動添加一個sortExpression querystring字段–比如SortingWithDefaultPaging.aspx?sortExpression=CategoryName –那么結果會以指定的sortExpression來排序。然而在轉到另外一個頁時這個sortExpression參數(shù)并沒有包含在querystring里。實際上當點上或者下一頁時我們會返回Paging.aspx。而且當前并沒有排序界面。用戶可以改變數(shù)據(jù)排序的唯一方法是直接操作querystring。

創(chuàng)建排序界面

  我們首先要修改RedirectUser方法來將用戶重定向到SortingWithDefaultPaging.aspx頁(而不是Paging.aspx),并將sortExpression的值包含到querystring里。我們還應該添加一個只讀的SortExpression屬性。這個屬性和前面一章里創(chuàng)建的PageIndex 和 PageSize屬性相似,在sortExpression querystring字段存在時返回它的值,否則的話使用默認值“ProductName”。

  現(xiàn)在的RedirectUser方法只接收一個參數(shù)–顯示的頁的index。然而可能有些時候我們需要使用排序表達式將用戶重定向到特定數(shù)據(jù)的頁。我們將馬上來為這個頁創(chuàng)建排序界面,它將包含一些button來為指定的列排序。當其中一個button被點擊時,我們需要傳入合適的排序表達式的值來重定向用戶。為了提供這個功能,創(chuàng)建兩個RedirectUser方法。第一個接收page的index,第二個接收page index和sort expression(排序表達式)。

private string SortExpression
{
 get
 {
 if (!string.IsNullOrEmpty(Request.QueryString["sortExpression"]))
  return Request.QueryString["sortExpression"];
 else
  return "ProductName";
 }
}
private void RedirectUser(int sendUserToPageIndex)
{
 // Use the SortExpression property to get the sort expression
 // from the querystring
 RedirectUser(sendUserToPageIndex, SortExpression);
}
private void RedirectUser(int sendUserToPageIndex, string sendUserSortingBy)
{
 // Send the user to the requested page with the requested sort expression
 Response.Redirect(string.Format(
 "SortingWithDefaultPaging.aspx?pageIndex={0}pageSize={1}sortExpression={2}",
 sendUserToPageIndex, PageSize, sendUserSortingBy));
}

  本章的第一個例子里,我們使用DropDownList來創(chuàng)建了一個排序界面。我們將在這個例子里使用3個button(它們位于DataList上方)–一個表示為ProductName排序,一個為CategoryName,一個為SupplierName。添加三個button并設置它們的ID和Text。

p>
 asp:Button runat="server" id="SortByProductName"
 Text="Sort by Product Name" />
 asp:Button runat="server" id="SortByCategoryName"
 Text="Sort by Category" />
 asp:Button runat="server" id="SortBySupplierName"
 Text="Sort by Supplier" />
/p>

  然后為每個button創(chuàng)建一個Click event handler。這個事件處理將調用RedirectUser方法,并使用合適的排序表達式將用戶返回到第一頁。

protected void SortByProductName_Click(object sender, EventArgs e)
{
 // Sort by ProductName
 RedirectUser(0, "ProductName");
}
protected void SortByCategoryName_Click(object sender, EventArgs e)
{
 // Sort by CategoryName
 RedirectUser(0, "CategoryName");
}
protected void SortBySupplierName_Click(object sender, EventArgs e)
{
 // Sort by SupplierName
 RedirectUser(0, "SupplierName");
}

  第一次瀏覽該頁時,數(shù)據(jù)將按照product name的字母順序排序(見圖9)。點Next button來瀏覽第二頁,然后點“Sort by Category” button。這樣將讓頁返回到第一頁,并按照category name來排序,見圖10。同樣的,點“Sort by Supplier” button會將數(shù)據(jù)按照supplier排序,并返回到第一頁。當數(shù)據(jù)分頁時排序的選擇會被記下來。圖11是按照category排序并瀏覽第十三頁的樣子。


圖 10: Products 按照Category排序


圖 11: 分頁時會記下Sort Expression

第六步: Repeater的自定義分頁

  第五步里的DataList示例使用默認的分頁技術。當大數(shù)據(jù)量時,我們需要使用自定義分頁。回到Efficiently Paging Through Large Amounts of Data 和 Sorting Custom Paged Data 里,我們學習了默認和自定義這兩種分頁方式的不同,并在BLL里為自定義分頁和對自定義分頁數(shù)據(jù)的排序創(chuàng)建了方法。在這兩章里我們在ProductsBLL里添加了下面三個方法:

  GetProductsPaged(startRowIndex, maximumRows) – 返回從startRowIndex開始并不超過maximumRows  的特定記錄集。
  GetProductsPagedAndSorted(sortExpression, startRowIndex, maximumRows) – 根據(jù)指定的sortExpression  返回特定記錄集。
  TotalNumberOfProducts() – 提供Products 表的總記錄數(shù)。

  這些方法可以用來在DataList或Repeater進行高效的分頁并排序。我們首先創(chuàng)建一個支持自定義分頁的Repeater。然后再添加排序支持。打開PagingSortingDataListRepeater文件夾下的SortingWithCustomPaging.aspx頁,添加一個Repeater,將ID設為Products。從智能標簽里創(chuàng)建一個名為ProductsDataSource的ObjectDataSource。使用ProductsBLL類的GetProductsPaged方法來配置它的select標簽。


圖 12: 配置 ObjectDataSource

  在UPDATE, INSERT, DELETE標簽里選擇“(None)”,點下一步?,F(xiàn)在我們需要為GetProductsPaged方法的startRowIndex 和 maximumRows 參數(shù)選擇源。實際上這里不需要配置。這兩個參數(shù)的值會在ObjectDataSource的Selecting event handler里通過Arguments屬性來指定,就好象我們在本章的第一個例子里指定sortExpression 一樣。因此,在參數(shù)源的下拉列表里選擇“None”。


圖 13:將參數(shù)源設為 “None”

  注意:不要將ObjectDataSource的EnablePaging屬性設為true。這樣會讓ObjectDataSource自動的將它的startRowIndex 和 maximumRows 參數(shù)包含在SelectMethod的已經(jīng)存在的參數(shù)列表里。EnablePaging屬性在將自定義分頁數(shù)據(jù)綁定到GridView, DetailsView, FormView時才有用。由于我們是為DataList 和Repeater手動添加分頁支持,因此將它們設為false(默認的),我們將在ASP.NET頁里直接實現(xiàn)這些功能。

  最后,定義Repeater的ItemTemplate,讓它只顯示product'的name, category, supplier。完成這些后,Repeater和ObjectDataSource的聲明語言看起來應該和下面差不多:

asp:Repeater ID="Products" runat="server" DataSourceID="ProductsDataSource"
 EnableViewState="False">
 ItemTemplate>
 h4>asp:Label ID="ProductNameLabel" runat="server"
  Text='%# Eval("ProductName") %>'>/asp:Label>/h4>
 Category:
 asp:Label ID="CategoryNameLabel" runat="server"
  Text='%# Eval("CategoryName") %>'>/asp:Label>br />
 Supplier:
 asp:Label ID="SupplierNameLabel" runat="server"
  Text='%# Eval("SupplierName") %>'>/asp:Label>br />
 br />
 br />
 /ItemTemplate>
/asp:Repeater>
asp:ObjectDataSource ID="ProductsDataSource" runat="server"
 OldValuesParameterFormatString="original_{0}"
 SelectMethod="GetProductsPaged" TypeName="ProductsBLL">
 SelectParameters>
 asp:Parameter Name="startRowIndex" Type="Int32" />
 asp:Parameter Name="maximumRows" Type="Int32" />
 /SelectParameters>
/asp:ObjectDataSource>

  現(xiàn)在瀏覽該頁,注意沒有返回任何記錄。這是因為我們還沒有指定startRowIndex 和 maximumRows 參數(shù)的值。為了指定這些值,為ObjectDataSource的Selecting event創(chuàng)建一個event handler,并將參數(shù)值硬編碼的設置為0和5。

protected void ProductsDataSource_Selecting
 (object sender, ObjectDataSourceSelectingEventArgs e)
{
 e.InputParameters["startRowIndex"] = 0;
 e.InputParameters["maximumRows"] = 5;
}

現(xiàn)在瀏覽頁面時會顯示前5條product記錄。


圖 14: 顯示前5條product

  注意:圖14列出的products以product name排序是因為自定義分頁使用的GetProductsPaged存儲過程返回的結果是以ProductName排序。

  為了讓用戶可以翻頁,我們需要在postback過程中記下start row index 和 maximum rows。在默認分頁的例子里我們用querystring來保存這些值。這個例子里我們將使用view state。創(chuàng)建下面兩個屬性:

private int StartRowIndex
{
 get
 {
 object o = ViewState["StartRowIndex"];
 if (o == null)
  return 0;
 else
  return (int)o;
 }
 set
 {
 ViewState["StartRowIndex"] = value;
 }
}
private int MaximumRows
{
 get
 {
 object o = ViewState["MaximumRows"];
 if (o == null)
  return 5;
 else
  return (int)o;
 }
 set
 {
 ViewState["MaximumRows"] = value;
 }
}

然后更新Selecting event handler的代碼,使用StartRowIndex 和 MaximumRows屬性代替硬編碼的0和5。

e.InputParameters["startRowIndex"] = StartRowIndex;
e.InputParameters["maximumRows"] = MaximumRows;

現(xiàn)在我們的頁仍然只顯示5條記錄。然而完成這些屬性后,我們已經(jīng)可以創(chuàng)建分頁界面了。

添加分頁界面

  我們還是使用和默認分頁例子里一樣的First, Previous, Next, Last分頁界面,并包含顯示當前是哪頁和總頁數(shù)的label。在Repeater下面添加4個button和1一個label。

p>
 asp:Button runat="server" ID="FirstPage" Text=" First" />
 asp:Button runat="server" ID="PrevPage" Text=" Prev" />
 asp:Button runat="server" ID="NextPage" Text="Next >" />
 asp:Button runat="server" ID="LastPage" Text="Last >>" />
/p>
p>
 asp:Label runat="server" ID="CurrentPageNumber">/asp:Label>
/p>

  然后為4個button創(chuàng)建Click event handlers。當其中一個button被點時,我們需要修改StartRowIndex并將數(shù)據(jù)重新綁定到Repeater。First, Previous, 和 Next button的代碼都非常簡單,但是對Last button來說,我們如何判斷最后一頁數(shù)據(jù)的start row index?為了計算出這個index–和判斷Next 和 Last button是否應該enabled一樣–我們需要知道分頁數(shù)據(jù)的總數(shù)。我們可以調用ProductsBLL類的TotalNumberOfProducts()方法來獲取這個總數(shù)。我們來創(chuàng)建一個只讀的屬性,名為TotalRowCount,它返回TotalNumberOfProducts()方法的結果。

private int TotalRowCount
{
 get
 {
 // Return the value from the TotalNumberOfProducts() method
 ProductsBLL productsAPI = new ProductsBLL();
 return productsAPI.TotalNumberOfProducts();
 }
}

  有了這個屬性后我們現(xiàn)在可以獲取最后一頁的start row index。它可以通過TotalRowCount除以MaximumRows的結果的整數(shù)部分然后乘以MaximumRows來得到。我們現(xiàn)在可以為4個分頁界面的button來寫Click event handlers。

  最后,在瀏覽第一頁時需要禁用First 和 Previous buttons,在瀏覽最后一頁時要禁用Next 和 Last buttons。在ObjectDataSource的Selecting event handler里添加以下代碼:

// Disable the paging interface buttons, if needed
FirstPage.Enabled = StartRowIndex != 0;
PrevPage.Enabled = StartRowIndex != 0;
int LastPageStartRowIndex = ((TotalRowCount - 1) / MaximumRows) * MaximumRows;
NextPage.Enabled = StartRowIndex  LastPageStartRowIndex;
LastPage.Enabled = StartRowIndex  LastPageStartRowIndex;

  完成這些后,瀏覽該頁。見圖15。當?shù)谝淮螢g覽該頁時,F(xiàn)irst 和 Previous buttons被禁用。點Next會顯示第二頁的數(shù)據(jù)。點Last會顯示最后一頁的數(shù)據(jù)(見圖16和17)。當瀏覽最后一頁時,Next 和 Last buttons被禁用。


圖 15: 瀏覽第一頁時 Previous 和 Last Buttons 被禁用


圖 16: 第二頁數(shù)據(jù)


圖 17: 最后一頁

  祝編程快樂!

作者簡介

  本系列教程作者 Scott Mitchell,著有六本ASP/ASP.NET方面的書,是4GuysFromRolla.com的創(chuàng)始人,自1998年以來一直應用 微軟Web技術。大家可以點擊查看全部教程《[翻譯]Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程》,希望對大家的學習ASP.NET有所幫助。

您可能感興趣的文章:
  • ASP.NET2.0數(shù)據(jù)庫入門之SqlDataSource
  • SqlDataSource 鏈接Access 數(shù)據(jù)
  • aspx中的mysql操作類sqldatasource使用示例分享
  • 在ASP.NET 2.0中操作數(shù)據(jù)之三十九:在DataList的編輯界面里添加驗證控件
  • 在ASP.NET 2.0中操作數(shù)據(jù)之四十:自定義DataList編輯界面
  • 在ASP.NET 2.0中操作數(shù)據(jù)之四十一:DataList和Repeater數(shù)據(jù)分頁
  • 在ASP.NET 2.0中操作數(shù)據(jù)之四十二:DataList和Repeater數(shù)據(jù)排序(一)
  • 在ASP.NET 2.0中操作數(shù)據(jù)之四十四:DataList和Repeater數(shù)據(jù)排序(三)
  • 在ASP.NET 2.0中操作數(shù)據(jù)之四十五:DataList和Repeater里的自定義Button
  • 在ASP.NET 2.0中操作數(shù)據(jù)之四十六:使用SqlDataSource控件檢索數(shù)據(jù)
  • 在ASP.NET 2.0中操作數(shù)據(jù)之四十七:用SqlDataSource控件插入、更新、刪除數(shù)據(jù)

標簽:清遠 中衛(wèi) 臨夏 聊城 甘肅 海西 慶陽

巨人網(wǎng)絡通訊聲明:本文標題《在ASP.NET 2.0中操作數(shù)據(jù)之四十三:DataList和Repeater數(shù)據(jù)排序(二)》,本文關鍵詞  在,ASP.NET,2.0,中,操作,數(shù)據(jù),;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在ASP.NET 2.0中操作數(shù)據(jù)之四十三:DataList和Repeater數(shù)據(jù)排序(二)》相關的同類信息!
  • 本頁收集關于在ASP.NET 2.0中操作數(shù)據(jù)之四十三:DataList和Repeater數(shù)據(jù)排序(二)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美日韩免费观看一区=区三区| 一起操在线观看| 91视频观看| 欧美xxxx性| 女优一区二区三区| 国产精品福利网站| 国产一区二区在线|播放| 天天综合在线视频| 成人羞羞网站| 9久久婷婷国产综合精品性色| 天海翼视频在线观看| 日本一区二区三区免费乱视频| 亚洲欧洲精品在线| 销魂美女一区二区三区视频在线| 亚洲国产中文在线二区三区免| 亚洲美女精品成人在线视频| 欧美日韩国产探花| 欧美视频二区欧美影视| 国产精品自在自线| 久久精品视频在线观看榴莲视频| 欧美人与动牲交xxxxbbbb| 婷婷5月激情5月| 国产又粗又猛又黄又爽| 6080yy午夜一二三区久久| 草草影院在线| 中日韩美女免费视频网址在线观看| 国产91精品久久久久久久网曝门| 国产福利91精品一区二区| 丰满少妇xbxb毛片日本| 国产精品全国免费观看高清| 日韩av官网| 亚洲美女视频一区| 东热在线免费视频| 免费欧美一区| 久久久久国产精品| 日韩精品免费一区二区| 亚洲人精品午夜| 亚洲欧美视频在线观看视频| 动漫性做爰视频| 日韩免费视频一区二区| 欧美老女人性生活| 黄色录像特级片| 女人天堂av手机在线| 激情文学综合插| yy6080久久伦理一区二区| 国产亚洲精品bt天堂精选| 视频一区视频二区中文字幕| 91福利在线视频| 久久久久久亚洲综合影院红桃| 免费成人结看片| 日本黄色一区二区三区| 国产亚洲精品久久久久久牛牛| 精品嫩草影院| 中文字幕在线视频日韩| 中文字幕2022永久在线| 中文字幕日韩欧美一区二区三区| 亚洲激精日韩激精欧美精品| 亚洲特色特黄| 熟年交尾五十路视频在线播放| av电影中文字幕| 精品99久久| www日韩大片| 91精品国产91| 久久久久久无码精品大片| 亚洲人成小说网站色在线| 男人天堂手机在线| 日本一区精品视频| 国产韩国精品一区二区三区| 亚洲国产电影在线观看| 丁香婷婷综合网| 天堂av2020| 亚洲精品suv精品一区二区| 欧美一区二区三区在线免费观看| 狠狠做六月爱婷婷综合aⅴ| 日韩精彩视频在线观看| 亚洲午夜电影在线观看| 69ww免费视频播放器| 好看的日韩av电影| 午夜电影一区二区| 91精品国产91久久久久青草| 国产69精品久久久久久久久久| 黄色网址在线视频| 亚洲欧美中文字幕在线一区| 一级毛片在线| 免费在线观看羞羞视频| 国产一区二区久久久久| 国产欧美久久久久久| 欧美日韩在线看片| 亚洲精品一二三四| 97国产精品久久| 久热久热免费视频中文字幕777| 亚洲a视频在线观看| 99视频在线播放| 精品人妻一区二区三区视频| 黑丝av在线播放| 偷拍中文亚洲欧美动漫| 男女羞羞电影免费观看| 成人在线观看毛片| 伊人久久影院| 婷婷视频在线播放| 色综合久久中文字幕| 久久久久99精品久久久久| 污污的视频网站在线观看| 欧美亚洲另类久久综合| 午夜精品一区二区三级视频| 午夜激情视频在线| 糖心vlog免费在线观看| 伊人久久久大香线蕉综合直播| 日韩精品视频在线观看免费| 日韩一区二区三区精品| 综合激情五月婷婷| 亚洲天堂网在线播放| 91蜜桃婷婷狠狠久久综合9色| 欧美成人三级电影在线| 亚洲国模精品一区| av电影一区二区三区| 欧美亚洲激情| 日日夜夜人人| 欧美日韩视频在线观看一区二区三区| 精品人妻一区二区三区香蕉| 欧美性片在线观看| 亚洲啊啊啊啊啊| 在线观看日本黄色| 欧洲精品在线播放| 88久久精品无码一区二区毛片| 日本高清成人免费播放| 亚洲毛片网站| 91成品人影院| 国产偷国产偷亚洲高清人白洁| 亚洲男人的天堂成人| 国产精品永久久久久久久久久| 国产一区在线免费观看| 午夜av在线免费观看| 成人在线视频网| 精品无人国产偷自产在线| 日韩欧美国产精品一区| 丁香花五月婷婷| 粉嫩在线一区二区三区视频| 日本年轻的继坶中文字幕| 五月天婷婷影视| 成年人视频大全| xxxx性bbbb欧美野外| 成人h动漫精品一区二区器材| 丁香花在线高清完整版视频| 久久综合九色综合97婷婷女人| 综合在线影院| 亚洲中文一区二区三区| 久久精品一二区| а√天堂在线官网| 日本大胆人体视频| 91精品国产福利尤物| 精品视频一区二区不卡| 亚洲av无一区二区三区久久| 国产成人精品一区二区三区视频| 国产一级生活片| 亚洲第一页综合| 亚洲人午夜精品天堂一二香蕉| 精品国产一区二区国模嫣然| 精品日韩在线一区| 一区二区欧美日韩视频| 国产专区视频| 日韩精品欧美激情| 久久一二三四| 日韩av在线看免费观看| 欧美三级资源在线| 91精品国产综合久久久蜜臀九色| 丁香桃色午夜亚洲一区二区三区| 亚洲精品精品亚洲| 亚洲图片在区色| 97人妻精品一区二区三区免费| 欧美电影院免费观看| 高清中文字幕mv的电影| 欧美视频一二三区| 四虎精品免费视频| 强制捆绑调教一区二区| 懂色av粉嫩av浪潮av| 欧美成人禁片在线www| 成人精品福利视频| 92看片淫黄大片看国产片| 成人综合久久网| 中文字幕一精品亚洲无线一区| 成人无码av片在线观看| 日本老师69xxx| 亚洲AV无码成人精品区东京热| 精品国产一区二区三区不卡在线| 96av麻豆蜜桃一区二区| 国产亚洲精品久久久久久无几年桃| 日本www在线观看视频| 亚洲最大福利视频网| 亚洲美免无码中文字幕在线| 亚洲人成电影网站色…| 丁香5月婷婷久久| 99re8在线精品视频免费播放| 国产女同性恋一区二区| 亚洲 国产 欧美一区| 粉嫩一区二区三区在线观看| 韩国一区二区三区美女美女秀| 色偷偷av一区二区三区乱| 91极品尤物在线播放国产| 狠狠色丁香婷婷综合久久片| 美国精品一区二区| 欧美激情在线免费观看| 毛片网站免费观看| 美女免费观看一区二区三区| 日韩精品久久久久久久的张开腿让| 日韩精品丝袜美腿| 久久精品99国产国产精| 69av一区二区三区| 丁香资源影视免费观看| 欧美一区二区三级| 免费不卡在线观看av| 亚洲国产一区二区a毛片| 小泽玛利亚一区二区三区视频| av亚洲一区二区三区| 国产精品久久久精品| 青青在线视频免费观看| 欧美老女人bb| 亚洲国产日韩a在线播放| 国产精品永久免费| 日本不卡一区二区三区| 亚洲精华液一区二区三区| 国产又白又嫩又爽又黄| 亚洲色图另类专区| 欧美5-7sexvideos处| 日本亚洲欧洲色α| 日本在线免费网| 国产肥臀一区二区福利视频| 99久热在线精品视频| 免费观看一级特黄欧美大片| 欧美成人高清视频| 亚洲美女福利视频| 欧美精品99久久| 91九色蝌蚪视频| 国产视频久久久久| av资源免费观看| 在线观看福利一区| 九一成人免费视频| 久久精品人人做人人爽电影| 国产日韩欧美大片| 欧美亚洲一区二区三区四区| jizz在线观看视频| 波多野结衣家庭教师| 香蕉视频免费版| 黄色99视频| 国产成人禁片免费观看视频| 污污网站在线免费观看| 久久国产精品久久w女人spa| 伊人网在线免费观看| 色婷婷久久99综合精品jk白丝| 国产精品伦子伦| 亚洲第一图区| 蜜桃视频网站www| 亚洲成人av观看| 国产精品jk白丝蜜臀av小说| 日本一道高清亚洲日美韩| 综合网插菊花| 无码少妇精品一区二区免费动态| 精品国产乱码一区二区三| 综合毛片免费视频| 日韩欧美国产一区二区三区| 欧美+亚洲+精品+三区| 97成人精品区在线播放| 国产成人精品日本亚洲| 亚洲大黄网站| 欧美人体大胆444www| 欧美一级视频在线播放| 国产经典视频一区| 久久精品一区二区三区不卡免费视频| 久久中文字幕在线| 四虎a级欧美在线观看| 成人av电影免费在线播放| 国产精品久久久久久久久久久久久久久久久| 在线观看国产日韩| 欧美精品与人动性物交免费看| 国产网站欧美日韩免费精品在线观看| 欧美日韩国产精品一区二区三区| 亚洲亚洲一区二区三区| 欧美二区视频| 欧美日韩你懂的| 亚洲av无码不卡| www.精品视频| 日韩欧美大片在线观看| 美女喷水白浆| 粉嫩91精品久久久久久久99蜜桃| 可以免费在线看黄的网站| 欧美一级搡bbbb搡bbbb| 日本а中文在线天堂| 亚洲精品视频91| 自拍偷拍亚洲综合| 黄页视频在线播放| 日韩精品免费观看| www.污网站| 爱情电影社保片一区| 色综合久久久久综合体桃花网| 日日夜夜精品一区| 91在线视频一区| 91亚洲国产成人久久精品麻豆| 大肉大捧一进一出好爽视频| 亚洲综合另类| 91超碰国产精品| 精品久久久久久久久久久下田| 精品视频一区二区三区| 精品一区二区在线观看视频| 91精品韩国| 青青青国内视频在线观看软件| 精品三级在线看| 懂色av蜜臀av粉嫩av分享吧| 欧美特黄一级视频| 欧美一区二区三区不卡| 久久先锋影音av鲁色资源网| 欧美激情黑白配| 成人蜜桃视频网站网址| 欧美一区二区三区电影在线观看| 羞羞的视频在线| 午夜精品一区二区三区在线视| 日本欧美视频| 成人综合电影| 国产精品伦一区二区三区级视频频| 国产精品日韩在线| 国产精品露脸视频| 2024亚洲男人天堂| 四虎成人影院网址| 亚洲一区二区三区四区| 欧美韩一区二区| 成人精品国产亚洲| 国产免费av在线| 99re66热这里只有精品4| 国产卡一卡二在线|