天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

ASP.NET 2.0數(shù)據(jù)教程之八:使用兩個(gè)DropDownList過(guò)濾的主/從報(bào)表

系列文章導(dǎo)航:

ASP.NET 2.0數(shù)據(jù)教程之一:創(chuàng)建一個(gè)數(shù)據(jù)訪問(wèn)層

ASP.NET 2.0數(shù)據(jù)教程之二:創(chuàng)建一個(gè)業(yè)務(wù)邏輯層

ASP.NET 2.0數(shù)據(jù)教程之三:母板頁(yè)和站點(diǎn)導(dǎo)航

ASP.NET 2.0數(shù)據(jù)教程之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)

ASP.NET 2.0數(shù)據(jù)教程之五:聲明參數(shù)

ASP.NET 2.0數(shù)據(jù)教程之六:編程設(shè)置ObjectDataSource的參數(shù)值

ASP.NET 2.0數(shù)據(jù)教程之七:使用DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之八:使用兩個(gè)DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之九:跨頁(yè)面的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十:使用 GridView 和DetailView實(shí)現(xiàn)的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十一:基于數(shù)據(jù)的自定義格式化

ASP.NET 2.0數(shù)據(jù)教程之十二:在GridView控件中使用TemplateField


導(dǎo)言

在前面的指南中我們研究了如何顯示一個(gè)簡(jiǎn)單的主/從報(bào)表, 該報(bào)表使用DropDownList和GridView控件, DropDownList填充類(lèi)別,GridView顯示選定類(lèi)別的產(chǎn)品. 這類(lèi)報(bào)表用于顯示具有一對(duì)多關(guān)系的記錄時(shí)非常合適, 同時(shí)它也可以很容易的被擴(kuò)展以顯示多個(gè)一對(duì)多關(guān)系的數(shù)據(jù). 比如, 一個(gè)訂單系統(tǒng)應(yīng)該包含表示客戶(hù),訂單和訂單明細(xì)的表. 一個(gè)客戶(hù)也許有多個(gè)訂單,每個(gè)訂單又包含多條訂單項(xiàng). 這樣的數(shù)據(jù)可以使用兩個(gè)DropDownList和一個(gè)GridView呈現(xiàn)給用戶(hù). 第一個(gè)DropDownList應(yīng)該包含數(shù)據(jù)庫(kù)中所有客戶(hù)的列表, 第二個(gè)DropDownList的內(nèi)容是選定客戶(hù)的訂單. GridView用于列出所選定訂單的訂單明細(xì)項(xiàng).

Step 1: 創(chuàng)建DropDownList并使用類(lèi)別數(shù)據(jù)填充

我們的第一個(gè)目標(biāo)是添加一個(gè)能夠列出類(lèi)別的DropDownList. 這些步驟在前面的指南中已經(jīng)做詳細(xì)的分析, 但為了保持本篇指南的完整性有必要在這里簡(jiǎn)單概括一下.

打開(kāi)Filtering文件夾中的MasterDetailsDetails.ASPx, 在頁(yè)面上添加一個(gè)DropDownList, 設(shè)置它的ID為Categories,然后單擊智能標(biāo)記上的 Configure Data Source鏈接. 在數(shù)據(jù)源配置向?qū)е羞x擇新增一個(gè)數(shù)據(jù)源.

圖 1: 為DropDownList增加一個(gè)新的數(shù)據(jù)源

當(dāng)然, 新的數(shù)據(jù)源應(yīng)該是ObjectDataSource. 把新的ObjectDataSource命名為CategoriesDataSource并且讓他調(diào)用CategoriesBLL對(duì)象的GetCategories()方法

圖 2: 選擇使用CategoriesBLL類(lèi)

圖3: 配置ObjectDataSource使用GetCategories()方法

配置完ObjectDataSource后還需要指定要在DropDownList中顯示的數(shù)據(jù)字段,以及作為數(shù)據(jù)項(xiàng)的值(value for the list item)的數(shù)據(jù)字段.我們指定CategoryName為要顯示的列,指定CategoryID為數(shù)據(jù)項(xiàng)的值字段

圖4: 指定DropDownList 顯示CategoryName列并且使用CategoryID列作為數(shù)據(jù)項(xiàng)的值

這時(shí),我們就有了一個(gè)使用Categories表中的記錄來(lái)填充的DropDownList控件. 當(dāng)用戶(hù)在DropDownList中選擇一個(gè)新的類(lèi)別時(shí), 我們需要一次回發(fā),這樣可以刷新在第二步中我們要?jiǎng)?chuàng)建的產(chǎn)品DropDownList控件. 所以, categoriesDropDownList的智能標(biāo)記上選中AutoPostBack選項(xiàng).

圖 5: 選中Categories DropDownList 的AutoPostBack

系列文章導(dǎo)航:

ASP.NET 2.0數(shù)據(jù)教程之一:創(chuàng)建一個(gè)數(shù)據(jù)訪問(wèn)層

ASP.NET 2.0數(shù)據(jù)教程之二:創(chuàng)建一個(gè)業(yè)務(wù)邏輯層

ASP.NET 2.0數(shù)據(jù)教程之三:母板頁(yè)和站點(diǎn)導(dǎo)航

ASP.NET 2.0數(shù)據(jù)教程之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)

ASP.NET 2.0數(shù)據(jù)教程之五:聲明參數(shù)

ASP.NET 2.0數(shù)據(jù)教程之六:編程設(shè)置ObjectDataSource的參數(shù)值

ASP.NET 2.0數(shù)據(jù)教程之七:使用DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之八:使用兩個(gè)DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之九:跨頁(yè)面的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十:使用 GridView 和DetailView實(shí)現(xiàn)的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十一:基于數(shù)據(jù)的自定義格式化

ASP.NET 2.0數(shù)據(jù)教程之十二:在GridView控件中使用TemplateField


Step 2: 在第二個(gè)DropDownList 中顯示選中類(lèi)別的產(chǎn)品

Categories DropDownList完成后, 下一步就需要一個(gè)顯示屬于選定類(lèi)別的產(chǎn)品的DropDownList了. 要完成這個(gè)功能, 再增加一個(gè)DropDownList控件并命名為ProductsByCategory. 與Categories DropDownList一樣, 為ProductsByCategory DropDownList創(chuàng)建一個(gè)新的ObjectDataSource并命名為ProductsByCategoryDataSource.

圖 6: 為ProductsByCategory DropDownList添加新數(shù)據(jù)源

圖7: 創(chuàng)建一個(gè)新的 ObjectDataSource 并命名為ProductsByCategoryDataSource

由于ProductsByCategory DropDownList 需要顯示屬于選定類(lèi)別的產(chǎn)品, 讓ObjectDataSource 調(diào)用ProductsBLL對(duì)象的GetProductsByCategoryID(categoryID)方法.

圖8: 選擇使用ProductsBLL類(lèi)

圖9: 配置ObjectDataSource 使用GetProductsByCategoryID(categoryID)方法

系列文章導(dǎo)航:

ASP.NET 2.0數(shù)據(jù)教程之一:創(chuàng)建一個(gè)數(shù)據(jù)訪問(wèn)層

ASP.NET 2.0數(shù)據(jù)教程之二:創(chuàng)建一個(gè)業(yè)務(wù)邏輯層

ASP.NET 2.0數(shù)據(jù)教程之三:母板頁(yè)和站點(diǎn)導(dǎo)航

ASP.NET 2.0數(shù)據(jù)教程之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)

ASP.NET 2.0數(shù)據(jù)教程之五:聲明參數(shù)

ASP.NET 2.0數(shù)據(jù)教程之六:編程設(shè)置ObjectDataSource的參數(shù)值

ASP.NET 2.0數(shù)據(jù)教程之七:使用DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之八:使用兩個(gè)DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之九:跨頁(yè)面的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十:使用 GridView 和DetailView實(shí)現(xiàn)的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十一:基于數(shù)據(jù)的自定義格式化

ASP.NET 2.0數(shù)據(jù)教程之十二:在GridView控件中使用TemplateField


在向?qū)У淖詈笠徊叫枰付?em>categoryID的值. 我們把Categories DropDownList的已選擇的數(shù)據(jù)項(xiàng)項(xiàng)作為該參數(shù)值.

圖10: 使用categoryID參數(shù)從Categories DropDownList接收值

ObjectDataSource配置完成后, 剩下的就是指定DropDownList要顯示的字段和作為值的字段了. 設(shè)置為顯示ProductName并把ProductID做為值字段

圖11: 指定 DropDownList數(shù)據(jù)項(xiàng)的文本和值使用的數(shù)據(jù)源字段

ObjectDataSource 和ProductsByCategory DropDownList配置完成后頁(yè)面上會(huì)有兩個(gè)DropDownList: 第一個(gè)列出所有的類(lèi)別,第二個(gè)列出屬于選定類(lèi)別的產(chǎn)品. 當(dāng)用戶(hù)在第一個(gè)DropDownList上選擇了一個(gè)新的類(lèi)別后, 將會(huì)發(fā)生一次回發(fā)(postback),第二個(gè)DropDownList將會(huì)重新綁定以顯示屬于新選定類(lèi)別的產(chǎn)品. 圖12 和圖13顯示了在瀏覽器中看到的MasterDetailsDetails.ASPx頁(yè)面.

圖12: 第一次訪問(wèn)頁(yè)面時(shí)Beverages 類(lèi)別是選中的.

圖13: 選擇一個(gè)不同的類(lèi)別時(shí)顯示該類(lèi)別的產(chǎn)品

圖14: 激活productsByCategory DropDownList的 AutoPostBack屬性

系列文章導(dǎo)航:

ASP.NET 2.0數(shù)據(jù)教程之一:創(chuàng)建一個(gè)數(shù)據(jù)訪問(wèn)層

ASP.NET 2.0數(shù)據(jù)教程之二:創(chuàng)建一個(gè)業(yè)務(wù)邏輯層

ASP.NET 2.0數(shù)據(jù)教程之三:母板頁(yè)和站點(diǎn)導(dǎo)航

ASP.NET 2.0數(shù)據(jù)教程之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)

ASP.NET 2.0數(shù)據(jù)教程之五:聲明參數(shù)

ASP.NET 2.0數(shù)據(jù)教程之六:編程設(shè)置ObjectDataSource的參數(shù)值

ASP.NET 2.0數(shù)據(jù)教程之七:使用DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之八:使用兩個(gè)DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之九:跨頁(yè)面的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十:使用 GridView 和DetailView實(shí)現(xiàn)的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十一:基于數(shù)據(jù)的自定義格式化

ASP.NET 2.0數(shù)據(jù)教程之十二:在GridView控件中使用TemplateField


Step 3: 使用DetailsView 顯示選中產(chǎn)品的詳細(xì)信息

最后一個(gè)步驟是在DetailsView中顯示選中產(chǎn)品的詳細(xì)信息. 要完成該功能, 添加一個(gè)DetailsView到頁(yè)面上, 設(shè)置它的ID屬性為ProductDetails, 給它創(chuàng)建一個(gè)新的ObjectDataSource. 配置ObjectDataSource使它通過(guò)ProductsBLL類(lèi)的GetProductByProductID(productID)方法填充數(shù)據(jù),使用ProductsByCategory DropDownList的已選擇項(xiàng)的值作為productID參數(shù)的值.

圖15: 選擇使用ProductsBLL類(lèi)

圖16: 配置 ObjectDataSource 使用GetProductByProductID(productID)方法

圖17: 使用ProductsByCategory DropDownList的值作為productID參數(shù)的值

你可以選擇在DetailsView顯示的任何有效的字段. 我決定不顯示ProductID, SupplierID, 和CategoryID字段并且對(duì)其余的字段重新排序及格式化.另外, 我去掉了DetailsView的Height和Width屬性設(shè)置, 允許DetailsView可以擴(kuò)展到需要的寬度, 這樣比把它限制在指定的大小會(huì)更好的顯示數(shù)據(jù). 下面便是全部的標(biāo)記性語(yǔ)言(markup)

<ASP:DetailsView ID="ProductDetails" runat="server" AutoGenerateRows="False" DataKeyNames="ProductID"

DataSourceID="ObjectDataSource1" EnableViewState="False">

<Fields>

<ASP:BoundField DataField="ProductName" HeaderText="Product" SortExpression="ProductName" />

<ASP:BoundField DataField="CategoryName" HeaderText="Category" ReadOnly="True" SortExpression="CategoryName" />

<ASP:BoundField DataField="SupplierName" HeaderText="Supplier" ReadOnly="True" SortExpression="SupplierName" />

<ASP:BoundField DataField="QuantityPerUnit" HeaderText="Qty/Unit" SortExpression="QuantityPerUnit" />

<ASP:BoundField DataField="UnitPrice" DataFormatString="{0:c}" HeaderText="Price"

HtmlEncode="False" SortExpression="UnitPrice" />

<ASP:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" SortExpression="Units In Stock" />

<ASP:BoundField DataField="UnitsOnOrder" HeaderText="UnitsOnOrder" SortExpression="Units On Order" />

<ASP:BoundField DataField="ReorderLevel" HeaderText="ReorderLevel" SortExpression="Reorder Level" />

<ASP:CheckBoxField DataField="Discontinued" HeaderText="Discontinued" SortExpression="Discontinued" />

</Fields>

</ASP:DetailsView>

 

系列文章導(dǎo)航:

ASP.NET 2.0數(shù)據(jù)教程之一:創(chuàng)建一個(gè)數(shù)據(jù)訪問(wèn)層

ASP.NET 2.0數(shù)據(jù)教程之二:創(chuàng)建一個(gè)業(yè)務(wù)邏輯層

ASP.NET 2.0數(shù)據(jù)教程之三:母板頁(yè)和站點(diǎn)導(dǎo)航

ASP.NET 2.0數(shù)據(jù)教程之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)

ASP.NET 2.0數(shù)據(jù)教程之五:聲明參數(shù)

ASP.NET 2.0數(shù)據(jù)教程之六:編程設(shè)置ObjectDataSource的參數(shù)值

ASP.NET 2.0數(shù)據(jù)教程之七:使用DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之八:使用兩個(gè)DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之九:跨頁(yè)面的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十:使用 GridView 和DetailView實(shí)現(xiàn)的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十一:基于數(shù)據(jù)的自定義格式化

ASP.NET 2.0數(shù)據(jù)教程之十二:在GridView控件中使用TemplateField


 

花點(diǎn)時(shí)間在瀏覽器中測(cè)試一下MasterDetailsDetails.ASPx頁(yè)面. 乍一看好像一切如預(yù)計(jì)的那樣順利, 但是卻有一個(gè)小問(wèn)題. 當(dāng)你選擇了一個(gè)新類(lèi)別, ProductsByCategory DropDownList會(huì)更新顯示選中類(lèi)別的產(chǎn)品, 但是ProductDetails DetailsView還是顯示上一個(gè)產(chǎn)品的信息. 當(dāng)選擇了一個(gè)選中類(lèi)別的不同的產(chǎn)品時(shí)DetailsView應(yīng)該被更新. 此外,如果你的測(cè)試足夠徹底, 你將會(huì)發(fā)現(xiàn)如果你不斷的選擇新類(lèi)別(比如在Categories DropDownList中選擇Beverages,然后選擇Condiments,然后是Confections)每個(gè)類(lèi)別的選擇都會(huì)使ProductDetails DetailsView被刷新.

為了讓這個(gè)問(wèn)題更具體一些, 讓我們看一個(gè)例子. 當(dāng)你第一次訪問(wèn)該頁(yè)面時(shí), Beverages類(lèi)別是選中的并且與之相關(guān)的產(chǎn)品在ProductsByCategory DropDownList中列出. Chai是當(dāng)前選中的產(chǎn)品,他的詳細(xì)信息顯示在ProductDetails DetailsView中, 如圖18.

圖18: DetailsView顯示了選中產(chǎn)品的詳細(xì)信息

如果你把類(lèi)別選項(xiàng)Beverages 改成 Condiments, 便會(huì)發(fā)生一次回發(fā), ProductsByCategory DropDownList會(huì)相應(yīng)的更新, 但是DetailsView仍然會(huì)顯示Chai的詳細(xì)信息.

圖19:上一次選擇產(chǎn)品的詳細(xì)信息仍然在顯示

在列表中選擇一個(gè)產(chǎn)品會(huì)如預(yù)期地一樣刷新DetailsView, 如果你改變了產(chǎn)品之后選擇了一個(gè)新的類(lèi)別, DetailsView又一次沒(méi)有刷新. 然后如果你選擇一個(gè)新類(lèi)別而不是選擇一個(gè)產(chǎn)品, DetailsView則會(huì)刷新. 究竟是怎么回事呢?

這個(gè)問(wèn)題是由頁(yè)面生命周期的時(shí)間調(diào)度引發(fā)的. 當(dāng)頁(yè)面被請(qǐng)求時(shí)會(huì)經(jīng)過(guò)一系列的處理后呈現(xiàn)出來(lái). 這其中的一項(xiàng)處理便是ObjectDataSource控件檢查他的SelectParameters值是否發(fā)生變化. 如果發(fā)生了變化, WEB控件綁定到ObjectDataSource的數(shù)據(jù)便會(huì)刷新顯示. 比如, 當(dāng)一個(gè)新類(lèi)別被選中時(shí), ProductsByCategoryDataSource ObjectDataSource發(fā)現(xiàn)它的參數(shù)值已經(jīng)發(fā)生了變化,然后ProductsByCategory DropDownList就會(huì)重新綁定,獲取所選中類(lèi)別的產(chǎn)品.

在這種情況下發(fā)生的該問(wèn)題是由于在頁(yè)面的生命周期中ObjectDataSources檢查參數(shù)是否發(fā)生改變的動(dòng)作是在關(guān)聯(lián)的WEB控件重新綁定之前. 因此,當(dāng)選擇了一個(gè)新的類(lèi)別ProductsByCategoryDataSource ObjectDataSource會(huì)檢查到它的參數(shù)值發(fā)生了變化. 但是, ProductDetails DetailsView使用的ObjectDataSource并沒(méi)有發(fā)生任何變化,因?yàn)镻roductsByCategory DropDownList還沒(méi)有重新綁定. 在稍后的生命周期中ProductsByCategory DropDownList重新綁定到它的ObjectDataSource,獲取剛剛選中類(lèi)別的產(chǎn)品. 當(dāng)ProductsByCategory DropDownList的值發(fā)生變化的時(shí)候ProductDetails DetailsView的 ObjectDataSource已經(jīng)完成了它的參數(shù)值檢查工作. 因此, DetailsView還是顯示先前的數(shù)據(jù). 圖20描述了這個(gè)交互的過(guò)程.

圖20: T ProductDetails DetailsView的 ObjectDataSource的檢查工作結(jié)束后ProductsByCategory DropDownList的值才改變.

 

系列文章導(dǎo)航:

ASP.NET 2.0數(shù)據(jù)教程之一:創(chuàng)建一個(gè)數(shù)據(jù)訪問(wèn)層

ASP.NET 2.0數(shù)據(jù)教程之二:創(chuàng)建一個(gè)業(yè)務(wù)邏輯層

ASP.NET 2.0數(shù)據(jù)教程之三:母板頁(yè)和站點(diǎn)導(dǎo)航

ASP.NET 2.0數(shù)據(jù)教程之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)

ASP.NET 2.0數(shù)據(jù)教程之五:聲明參數(shù)

ASP.NET 2.0數(shù)據(jù)教程之六:編程設(shè)置ObjectDataSource的參數(shù)值

ASP.NET 2.0數(shù)據(jù)教程之七:使用DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之八:使用兩個(gè)DropDownList過(guò)濾的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之九:跨頁(yè)面的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十:使用 GridView 和DetailView實(shí)現(xiàn)的主/從報(bào)表

ASP.NET 2.0數(shù)據(jù)教程之十一:基于數(shù)據(jù)的自定義格式化

ASP.NET 2.0數(shù)據(jù)教程之十二:在GridView控件中使用TemplateField


 

要解決這個(gè)問(wèn)題,我們需要在ProductsByCategory DropDownList綁定后顯式的重新綁定ProductDetails DetailsView. 我們可以在ProductsByCategory DropDownList的DataBound事件中調(diào)用ProductDetails DetailsView的DataBind()方法. 把下面的事件處理代碼添加到MasterDetailsDetails.ASPx頁(yè)面的代碼后置類(lèi):

protected void ProductsByCategory_DataBound(object sender, EventArgs e)

{

ProductDetails.DataBind();

}

添加對(duì)ProductDetails DetailsView的DataBind()方法的顯式調(diào)用后,就一切正常了. 圖21高亮顯示了該方法是如何解決這個(gè)問(wèn)題的.

圖21:在ProductsByCategory DropDownList的DataBound事件中ProductDetails DetailsView被顯示的刷新.

DropDownList控件是一個(gè)非常理想的用于主/從報(bào)表(主記錄和從記錄存在一對(duì)多關(guān)系)的用戶(hù)接口元素(user interface element ). 在前面的教程中我們看到了如何使用單個(gè)DropDownList對(duì)選中的類(lèi)別進(jìn)行產(chǎn)品過(guò)濾. 在本教程中我們使用GridView代替了DropDownList做為產(chǎn)品列表, 使用DetailsView顯示選中產(chǎn)品的詳細(xì)信息. 本教程所討論的概念可以很容易的擴(kuò)展到包含多個(gè)一對(duì)多關(guān)系的數(shù)據(jù)模型, 比如客戶(hù),訂單及訂單項(xiàng). 通常,在一對(duì)多的關(guān)系中你總是可以使用DropDownList 來(lái)表示"主"實(shí)體(一對(duì)多中的一,主/從關(guān)系的主記錄)

祝編程愉快!

NET技術(shù)ASP.NET 2.0數(shù)據(jù)教程之八:使用兩個(gè)DropDownList過(guò)濾的主/從報(bào)表,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久精品热老司机 | 国产精品女上位在线观看 | 新妺妺窝人体色WWW 新金梅瓶玉蒲团性奴3 | 真人美女精美小穴 | 视频在线观看高清免费看 | yellow免费观看完整版直播 | 窝窝午夜色视频国产精品东北 | 亚洲视频无码中字在线 | 国产毛片女人高潮叫声 | 国产亚洲精品精品精品 | 亚洲中文字幕永久在线 | 京香在线播放 | 亚洲国产综合人成综合网站00 | 免费视频国产在线观看网站 | 久久亚洲精品无码A片大香大香 | 欧美一区二区激情视频 | 日日干夜夜爽 | 永久免费的无码中文字幕 | 欧美色偷偷亚洲天堂bt | 日韩一区二区三区精品 | 久久国产热视频99rev6 | 色欲天天天综合网免费 | 亚洲区视频在线观看 | 日本人的xxxxxxxxx69 | 熟女人妻AV五十路六十路 | 国内精品久久影视免费 | 国产真实强被迫伦姧女在线观看 | 国产超碰精久久久久久无码AV | WWWXXXX兽交| 国产精品一区二区资源 | 国产国拍精品AV在线观看 | 沈阳熟女露脸对白视频 | 国产盗摄TP摄像头偷窥 | 国产精品久久久久久久A片冻果 | 日韩精品专区在线影院重磅 | 娇小XXXXX第一次出血 | 绝色娇嫩美人妻老师 | 高h原耽肉汁动漫视频 | 999久久国产精品免费人妻 | 成人亚洲精品 | 狠狠色综合久久婷婷 |