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

主頁 > 知識庫 > 在ASP.NET 2.0中操作數(shù)據(jù)之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)

在ASP.NET 2.0中操作數(shù)據(jù)之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)

熱門標簽:天心智能電銷機器人 遂寧市地圖標注app 地圖標注專業(yè)團隊 塔城代理外呼系統(tǒng) 400電話辦理哪家性價比高 代理接電話機器人如何取消 地圖標注的公司有哪些 濮陽外呼電銷系統(tǒng)怎么樣 地圖定位圖標標注

  在完成了應(yīng)用程序架構(gòu)和頁面的設(shè)計后,我們可以開始探討如何實現(xiàn)多種多樣的普通數(shù)據(jù)到報表展現(xiàn)的任務(wù)。前面我們已經(jīng)了解到如何在從數(shù)據(jù)訪問層和業(yè)務(wù)邏輯層綁定數(shù)據(jù)到ASP.NET頁面上的數(shù)據(jù)控件。在ASP.NET 1.x應(yīng)用程序中,通過對數(shù)據(jù)控件的DataSource屬性賦值然后調(diào)用控件的DataBind()方法從而實現(xiàn)數(shù)據(jù)展現(xiàn)的方式在ASP.NET 2.0應(yīng)用程序中可以繼續(xù)使用。然而,ASP.NET 2.0的數(shù)據(jù)源控件提供了一種新的方式,使用這些控件可以讓你輕松從上文中創(chuàng)建的業(yè)務(wù)邏輯層中進行數(shù)據(jù)綁定,甚至不需要手寫一行的代碼。

  ASP.NET 2.0提供了五種內(nèi)置的數(shù)據(jù)源控件:SqlDataSource、AccessDataSource,、ObjectDataSource、XmlDataSource、和SiteMapDataSource,盡管如果有需要的話你還可以構(gòu)建自己的自定義數(shù)據(jù)源控件(custom data source controls)。既然我們在前文中已經(jīng)完成了應(yīng)用程序示例的系統(tǒng)架構(gòu),基于已有的業(yè)務(wù)邏輯類我們將使用ObjectDataSource。

圖1: ASP.NET 2.0包括五種內(nèi)置的數(shù)據(jù)源控件

  ObjectDataSource充當別的對象的代理。通過配置ObjectDataSource,我們指定這些底層的對象,還有這些對象的方法如何映射到ObjectDataSource的Select、Insert、Update和Delete方法。一旦底層的對象被指定并且其方法映射到ObjectDataSource的方法后,我們就可以把ObjectDataSource綁定到頁面上的Data Web 服務(wù)器控件。ASP.NET提供了許多Data Web 服務(wù)器控件,包括GridView、DetailsView、RadioButtonList和DropDownList等等。在頁面的生命周期中,Data Web 服務(wù)器控件可能需要訪問它所綁定的數(shù)據(jù),這將通過調(diào)用ObjectDataSource的Select方法來實現(xiàn);如果這個Data Web 服務(wù)器控件還支持插入、更新或者刪除,那么將調(diào)用ObjectDataSource的Insert、Update或者Delete方法。這些調(diào)用會通過ObjectDataSource被發(fā)送到適當?shù)牡讓訉ο蟮姆椒?,如下圖所示。

圖2:ObjectDataSource充當一個代理

  雖然ObjectDataSource被用來實現(xiàn)插入、更新或者刪除數(shù)據(jù),但暫時我們只集中討論返回數(shù)據(jù),以后的章節(jié)再探討使用ObjectDataSource和Data Web 服務(wù)器控件實現(xiàn)數(shù)據(jù)修改。

第一步:添加和配置ObjectDataSource控件

  首先,打開BasicReporting文件夾中的SimpleDisplay.aspx頁面,切換到設(shè)計視圖,從工具箱拖拽一個ObjectDataSource控件到頁面。它在設(shè)計界面顯示為一個灰色的方塊,這是因為它不產(chǎn)生任何的聲明標記;它僅僅是通過調(diào)用制定的對象的方法存取數(shù)據(jù)。通過ObjectDataSource返回的數(shù)據(jù)可以展現(xiàn)到Data Web 服務(wù)器控件,例如GridView、DetailsView、FormView等等。

  注意:作為另一種選擇,你也可以先在頁面上添加一個Data Web 服務(wù)器控件,然后“顯示智能標記”,從“選擇數(shù)據(jù)源”下拉框中選擇〈新建數(shù)據(jù)源…〉進入數(shù)據(jù)源配置向?qū)硖砑右粋€ObjectDataSource。

  為了指定ObjectDataSource的底層對象并且把該對象的方法映射到ObjectDataSource的的方法,可以點擊ObjectDataSource的智能標記中的“配置數(shù)據(jù)源”鏈接進入數(shù)據(jù)源配置向?qū)А?/p>

圖3: 點擊智能標記中的“配置數(shù)據(jù)源”鏈接

  這將進入數(shù)據(jù)源配置向?qū)АJ紫?,我們需要給ObjectDataSource指定一個業(yè)務(wù)對象。如果勾選上“只顯示數(shù)據(jù)組件”,那么下拉框中就僅僅顯示出那些以[DataObject]特征修飾過的對象。當前這個列表中應(yīng)該包含了類型化數(shù)據(jù)集中表適配器對象(TableAdapters)和前文中我們已經(jīng)創(chuàng)建的業(yè)務(wù)對象。如果你忘了給業(yè)務(wù)邏輯類增加[DataObject]特征,那么當前列表中講看不到它們。如果是那樣的話,你也可以不勾選“只顯示數(shù)據(jù)組件”從而看見所有對象,這就可以把業(yè)務(wù)對象包含進來(連同類型化數(shù)據(jù)集中的其他類 –DataTables、 DataRows等等)

  在第一屏中從下拉列表中選擇業(yè)務(wù)對象ProductsBLL ,然后點擊“下一步”。

圖4: 指定ObjectDataSource 控件使用的業(yè)務(wù)對象

  在下一屏中向?qū)е心憧梢赃x擇ObjectDataSource要調(diào)用的方法。下拉列表中方法是從上一屏中選定的業(yè)務(wù)對象獲得的。這里我們可以看到GetProductsByProductID,GetProducts,GetProductsByCategoryID和GetProductsBySupplierID這幾個方法。從下拉列表中選擇方法GetProducts然后點擊“完成”(如果你已經(jīng)像前文展示那樣給ProductBLL的方法增加了[DataObjectMethod]特征,那么該項會被默認選中)。

圖5: 從“Select”Tab頁選擇返回數(shù)據(jù)的方法

  手工配置ObjectDataSource

ObjectDataSource配置向?qū)峁┝艘粋€快捷的方式來指定它使用的對象并關(guān)聯(lián)需要調(diào)用的方法。不過,你也可以通過它的屬性來配置ObjectDataSource,不管是通過屬性窗口還是直接在聲明標記里。只需簡單地將TypeName屬性設(shè)置為使用的業(yè)務(wù)對象的名稱,將SelectMethod屬性設(shè)置為提取數(shù)據(jù)時需要調(diào)用的方法名稱。

 asp:ObjectDataSource ID="ObjectDataSource1" runat="server"

  SelectMethod="GetProducts"

  TypeName="ProductsBLL">

/asp:ObjectDataSource>

  盡管你可能更喜歡數(shù)據(jù)源配置向?qū)В袝r你還是需要手工配置ObjectDataSource,因為配置向?qū)е涣谐鲆呀?jīng)開發(fā)的類。如果你希望把ObjectDataSource綁定到.NET Framework里的類–例如 Membership class來存取登陸用戶信息,或者Directory class 來管理文件系統(tǒng)信息,那么你就需要手工設(shè)置ObjectDataSource的屬性。

第二步:添加一個Data Web服務(wù)器控件并將它綁定到ObjectDataSource

  在ObjectDataSource添加到頁面并完成配置之后,我們就可以添加一個Data Web服務(wù)器控件到頁面來展現(xiàn)通過ObjectDataSource的Select方法返回的數(shù)據(jù)。所有的Data Web服務(wù)器控件都可以綁定到ObjectDataSource;下面我們看看如何將ObjectDataSource的數(shù)據(jù)展現(xiàn)到GridView、DetailsView、和 FormView 。

綁定一個GridView到ObjectDataSource

  從工具箱添加一個GridView控件到頁面SimpleDisplay.aspx的設(shè)計界面。從GridView的智能標記,選擇我們在第一步中添加的ObjectDataSource控件作為數(shù)據(jù)源。這將根據(jù)ObjectDataSource的Select方法所返回數(shù)據(jù)的每一個屬性(即類型化數(shù)據(jù)集Products所定義的屬性)自動地在GridView控件里產(chǎn)生一個綁定列(BoundField)。

圖6: 添加一個GridView控件到頁面并綁定到ObjectDataSource

圖7: 通過編輯列對話框管理GridView控件的綁定列

 花一些時間修改GridView控件的綁定列,移除ProductID, SupplierID, CategoryID, QuantityPerUnit, UnitsInStock, UnitsOnOrder, 和 ReorderLevel這幾列。操作很簡單,從左下方的列表中選中這些列然后點擊刪除按鈕(紅色交叉)就可以移除它們。然后,重新排列一下,選中CategoryName 和 SupplierName兩個綁定列并點擊向上箭頭按鈕,使它們排放在UnitPrice列之前。分別設(shè)置Products、Category、Supplier和 Price這幾個剩下的綁定列的HeaderText屬性。然后,格式化Price列為貨幣–設(shè)置該綁定列的HtmlEncode屬性為False并且設(shè)置DataFormatString屬性為{0:c} 。最后,通過ItemStyle/HorizontalAlign屬性設(shè)置綁定列Price的水平靠右對齊以及CheckBox列Discontinued水平居中顯示。

 asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ProductID" DataSourceID="ObjectDataSource1" EnableViewState="False">

 Columns>

  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="UnitPrice" DataFormatString="{0:c}" HeaderText="Price"

   HtmlEncode="False" SortExpression="UnitPrice">

   ItemStyle HorizontalAlign="Right" />

  /asp:BoundField>

  asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued" SortExpression="Discontinued">

   ItemStyle HorizontalAlign="Center" />

  /asp:CheckBoxField>

 /Columns>

/asp:GridView>

圖 8: GridView控件的綁定列定制完成

使用主題(Themes)保持顯示風(fēng)格的一致

  這里會盡可能地移除控件層面的樣式設(shè)置,取而代之的是使用在一個外部文件里定義的級聯(lián)樣式表。文件Styles.css包含了DataWebControlStyle、HeaderStyle、RowStyle和 AlternatingRowStyle 這幾種CSS樣式可以用來指示Data Web服務(wù)器控件的外觀。為了實現(xiàn)這一點,我們可以設(shè)置GridView控件的CssClass屬性為DataWebControlStyle,HeaderStyle、RowStyle和 AlternatingRowStyle的CssClass屬性也類似地設(shè)置。

  如果我們設(shè)置了這些CssClass屬性到Web控件,那么我們不得不記得明確地把每一個屬性的值和每一個Data Web服務(wù)器控件記錄到我們的手冊中。一種更為方便管理的方法是使用一個Theme定義CSS樣式跟GridView、 DetailsView和FormView控件的屬性之間的關(guān)聯(lián)關(guān)系。Theme是一個控件層面的屬性設(shè)置、圖片和CSS樣式的集合,它可以應(yīng)用到整個站點的所有頁面強制約束外貌和感觀。

  我們的Theme將不會包含圖片和CSS文件(我們會把stylesheet Styles.css文件照舊留在web應(yīng)用程序的根目錄下),但是它會包含兩個外觀(Skin)。外觀是一個包含Web控件的默認屬性設(shè)置的文件。特別地,我們將創(chuàng)建一個Skin文件為GridView和 DetailsView定義外觀,標示默認的CssClass關(guān)聯(lián)的屬性。

  在解決方案資源管理器里選中當前項目,從右鍵菜單中選擇“添加新項”,添加一個外觀文件到你的項目并命名為GridView.skin 。

圖9: 添加一個外觀文件并命名為GridView.skin

 

  Skin files need to be placed in a Theme, which are located in the App_Themes folder. Since we don't yet have such a folder, Visual Studio will kindly offer to create one for us when adding our first Skin. Click Yes to create the App_Theme folder and place the new GridView.skin file there.

  外觀文件需要被放置到一個主題里,而主題文件則存放在App_Themes文件夾里。因為我們目前還沒有這個文件夾,當我們添加第一個外觀文件時,Visual Studio會友善地提議為我們創(chuàng)建一個。點擊“是”,自動創(chuàng)建App_Theme文件夾并把剛剛添加的GridView.skin文件放置在那里。

圖 10: 讓Visual Studio自動創(chuàng)建App_Theme文件夾

 這將在App_Themes文件夾中自動創(chuàng)建一個主題,主題名稱為GridView并包含了外觀文件GridView.skin 。

圖 11: 主題GridView已被添加到 App_Theme 文件夾

  把主題GridView重命名為DataWebControls(從GridView文件夾右鍵菜單中選擇重命名)。然后,進入下面所見的GridView.skin文件的標記:

asp:GridView runat="server" CssClass="DataWebControlStyle">

 AlternatingRowStyle CssClass="AlternatingRowStyle" />

 RowStyle CssClass="RowStyle" />

 HeaderStyle CssClass="HeaderStyle" /> 

/asp:GridView>

  使用了主題DataWebControls后,這將定義任何一個頁面中任何一個GridView控件與CssClass相關(guān)屬性的默認值。讓我們添加一個另一個針對DetailsView控件的外觀,這個控件我們不久就會用到。在主題DataWebControls添加一個命名為DetailsView.skin的外觀,并加入如下的標記:

asp:DetailsView runat="server" CssClass="DataWebControlStyle">

 AlternatingRowStyle CssClass="AlternatingRowStyle" />

 RowStyle CssClass="RowStyle" />

 FieldHeaderStyle CssClass="HeaderStyle" />

/asp:DetailsView>

  關(guān)于我們的主題設(shè)置,最后一部就是將主題應(yīng)用到我們的ASP.NET頁面。一個主題可以一頁一頁地應(yīng)用到頁面,也可以應(yīng)用到一個站點下的所有頁面。讓我們把主題應(yīng)用到站點下的所有頁面。為了實現(xiàn)這一點,在Web.config的system.web>片斷里加入下面的標記:

 pages styleSheetTheme="DataWebControls" />

  這就順利完成了!在主題樣式表里預(yù)設(shè)的屬性將不會覆蓋直接在控件層面設(shè)定的屬性。如果希望主題里的設(shè)置高于控件的設(shè)置,則需要在主題樣式表里使用主題特征;然而不幸地,主題特征的設(shè)置并不出現(xiàn)在Visual Studio 的邏輯視圖。查閱 ASP.NET Themes and Skins Overview 和 Server-Side Styles Using Themes 獲取更多的關(guān)于主題和外觀的信息; 查看 How To: Apply ASP.NET Themes 獲得更多的關(guān)于如何配置頁面去使用一個主題的信息。

圖 12: The GridView顯示 Product's Name, Category, Supplier, Price, and Discontinued Information

在 DetailsView控件里每次顯示一條數(shù)據(jù)

  在GridView控件里,從綁定的數(shù)據(jù)源控件返回的數(shù)據(jù)每條記錄會被顯示為一行。然而有時候,我們僅僅需要顯示一條單獨的記錄,或者每次只顯示一條記錄。DetailsView控件提供了這個功能,它表現(xiàn)為一個兩列的HTML的table>,每一行顯示一個字段或者一個屬性。你可以想象DetailsView是只有一條數(shù)據(jù)的GridView翻轉(zhuǎn)90度。

  首先,在頁面SimpleDisplay.aspx里GridView控件的上方添加一個DetailsView控件。然后,把它綁定到GridView的同一個ObjectDataSourc控件。正如GridView控件那樣,它會根據(jù)ObjectDataSource的Select方法所返回的數(shù)據(jù),每一個屬性生成一個綁定列。唯一不同的是,DetailsView的綁定列是水平排列的。

圖 13: 添加一個DetailsView 控件到頁面并綁定到ObjectDataSource

類似GridView,DetailsView的綁定列也可以調(diào)整提供一些用戶化的展現(xiàn)。圖14展示了DetailsView控件在設(shè)置好綁定列和CssClass屬性后使它的外觀類似于GridView的例子。

圖 14: DetailsView 控件顯示一條記錄

注意DetailsView控件只顯示它的數(shù)據(jù)源里的第一條記錄。為了讓用戶可以瀏覽所有記錄,我們必須允許DetailsView分頁。為了實現(xiàn)這個,回到Visual Studio,在DetailsView的智能標記中勾選上“啟用分頁”。

圖 15: 允許DetailsView 控件分頁

圖 16: 啟用分頁后,DetailsView控件允許用戶查看任何一個Products

以后的教程中中我們將詳細討論關(guān)于分頁。

一種更靈活的排版用作每次顯示一條記錄

  使用DetailView展現(xiàn)ObjectDataSource返回的每一條數(shù)據(jù)顯得有些呆板。我們可能會需要更靈活的數(shù)據(jù)展現(xiàn)方式。例如,在每一個單獨的行里,在顯示product's name, category, supplier, price, 和 discontinued information這些信息的基礎(chǔ)上,我們可能需要product name 和 price兩列顯示h4>的列頭,而category 和 supplier則以較小的字體顯示在name和price下方。另外,我們也許不太在意屬性名(Product, Category,等等)顯示在屬性值后面。

  FormView控件提供了這個層面的用戶化定制。在使用字段的基礎(chǔ)上(像GridView 和 DetailsView那樣),F(xiàn)ormView控件使用模版,這可以讓我們混合使用Web服務(wù)器控件,靜態(tài)的HTML和綁定語法(databinding syntax)。如果你熟悉ASP.NET 1.x中的Repeater控件,你可以認為FormView是只顯示一條記錄的Repeater 。

  在頁面SimpleDisplay.aspx的設(shè)計界面添加一個FormView控件。一開始FromView控件顯示為一個灰色的方塊,并告知我們需要編輯模版內(nèi)容,需要使用ItemTemplate 。

圖 17: FormView必須包含一個ItemTemplate

  你可以通過FormView的智能標記直接給它綁定一個數(shù)據(jù)源控件,這將自動創(chuàng)建一個默認的ItemTemplate(如果ObjectDataSource設(shè)置了InsertMethod 和 UpdateMethod,那么同時也會自動創(chuàng)建EditItemTemplate 和 InsertItemTemplate)。不過,這里的示例我們將手工綁定FormView并設(shè)置其ItemTemplate 。首先,設(shè)置FormView的DataSourceID屬性為ObjectDataSource的ID: ObjectDataSource1,然后,創(chuàng)建ItemTemplate,在一個h4>里顯示product's name 和 price,category 和 supplier則以較小的字體顯示在下方。

 asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1" EnableViewState="False">

 ItemTemplate>

  h4>%# Eval("ProductName") %> (%# Eval("UnitPrice", "{0:c}") %>)/h4>

  Category: %# Eval("CategoryName") %>; Supplier: %# Eval("SupplierName") %>

 /ItemTemplate>

/asp:FormView>

圖 18: 第一個產(chǎn)品 (Chai) 顯示為預(yù)定的格式

 %# Eval(propertyName) %>是綁定語法。方法Eval返回綁定到FormView的對象的指定屬性的值。查閱Alex Homer的文章Simplified and Extended Data Binding Syntax in ASP.NET 2.0獲取更多的關(guān)于數(shù)據(jù)綁定的細節(jié)。

  跟DetailsView一樣,F(xiàn)ormView置顯示ObjectDataSource返回的第一條記錄。你可以啟用FormView的分頁功能,從而讓訪問者可以依次查看每個產(chǎn)品。

總結(jié)

  有賴于ASP.NET 2.0的ObjectDataSource控件,我們可以方便地完成從業(yè)務(wù)邏輯層獲取和展現(xiàn)數(shù)據(jù)而不需要寫一行代碼。OjbectDataSource調(diào)用指定的類的方法并且返回結(jié)果。這些結(jié)果可以展現(xiàn)在綁定了ObjectDataSource的Data Web服務(wù)器控件。本章節(jié)我們看了如何綁定到GridView、DetailsView、和FormView 控件到ObjectDataSource 。

  到目前為止我們僅僅看了如何使用OjbectDataSource調(diào)用一個沒有參數(shù)的方法,但如果我們想調(diào)用一個需要傳入多個參數(shù)的方法,例如類ProductBLL里的GetProductsByCategoryID(categoryID)方法呢?為了調(diào)用需要傳入一個或多個參數(shù)的方法,我們需要配置ObjectDataSource指定這些參數(shù)的值。在下一章中我們來看看如何實現(xiàn)。

 祝編程快樂!

作者簡介

Scott Mitchell,著有六本ASP/ASP.NET方面的書,是4GuysFromRolla.com的創(chuàng)始人,自1998年以來一直應(yīng)用微軟Web技術(shù)。Scott是個獨立的技 術(shù)咨詢顧問,培訓(xùn)師,作家,最近完成了將由Sams出版社出版的新作,24小時內(nèi)精通ASP.NET 2.0。他的聯(lián)系電郵為mitchell@4guysfromrolla.com,也可以通過他的博客http://ScottOnWriting.NET與他聯(lián)系。

您可能感興趣的文章:
  • 在ASP.NET 2.0中操作數(shù)據(jù)之一:創(chuàng)建一個數(shù)據(jù)訪問層
  • 在ASP.NET 2.0中操作數(shù)據(jù)之二:創(chuàng)建一個業(yè)務(wù)邏輯層
  • 在ASP.NET 2.0中操作數(shù)據(jù)之三:創(chuàng)建母版頁和站點導(dǎo)航
  • 在ASP.NET 2.0中操作數(shù)據(jù)之五:聲明參數(shù)
  • 在ASP.NET 2.0中操作數(shù)據(jù)之六:編程設(shè)置ObjectDataSource的參數(shù)值
  • ASP.NET 2.0中的數(shù)據(jù)操作之七:使用DropDownList過濾的主/從報表
  • ASP.NET 2.0中的數(shù)據(jù)操作之八:使用兩個DropDownList過濾的主/從報表
  • ASP.NET 2.0中的數(shù)據(jù)操作之九:跨頁面的主/從報表
  • 在ASP.NET 2.0中操作數(shù)據(jù)之十:使用 GridView和DetailView實現(xiàn)的主/從報表
  • [翻譯]Scott Mitchell 的ASP.NET 2.0數(shù)據(jù)教程

標簽:宜春 婁底 汕頭 本溪 麗江 重慶 河南 吉林

巨人網(wǎng)絡(luò)通訊聲明:本文標題《在ASP.NET 2.0中操作數(shù)據(jù)之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)》,本文關(guān)鍵詞  在,ASP.NET,2.0,中,操作,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在ASP.NET 2.0中操作數(shù)據(jù)之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁收集關(guān)于在ASP.NET 2.0中操作數(shù)據(jù)之四:使用ObjectDataSource展現(xiàn)數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    91麻豆国产在线观看| 日本久久亚洲电影| 欧美日韩一区二区三区高清| 精品国产污污免费网站入口| 尤物视频在线| 在线免费看黄色| 国产精品第一视频| 综合久久精品| 日韩在线理论| 国产欧美精品在线观看| 国产一区二区三区四区五区传媒| 国产爆乳无码一区二区麻豆| 久久久亚洲精品石原莉奈| 999国产精品一区| 久久国产加勒比精品无码| 亚洲18女电影在线观看| 亚洲综合精品四区| 91久久线看在观草草青青| 国内成人精品一区| 日韩av电影免费观看| 色爽爽爽爽爽爽爽爽| 在线电影院国产精品| 日韩中文字幕麻豆| 亚洲欧美99| 国产原创popny丨九色| 91久久免费视频| 日韩av最新在线观看| 日本老师69xxx| 成人性生交大片免费看96| 亚洲天天综合| 免费在线看黄色片| 欧美韩国日本精品一区二区三区| 亚洲无人区码一码二码三码的含义| 蜜臀久久99精品久久久无需会员| 真实乱视频国产免费观看| 久久婷婷国产精品| 在线免费国产视频| 九七影院97影院理论片久久| 99免费看香蕉视频| 国产一区二区h| 精品国产乱码久久久久久丨区2区| 欧美国产日韩二区| 亚洲欧洲日本韩国| 国产亚洲欧美日韩在线观看一区二区| 欧美精品中文| 黄色片av在线| 亚洲人成网址| 爱豆国产剧免费观看大全剧苏畅| 韩国久久久久久| 黄色免费的网站| 免费又爽又黄禁片视频1000片| 国产午夜亚洲精品羞羞网站| 国产主播欧美精品| 97在线观看免费视频| 丝袜亚洲另类欧美综合| 四虎海外影库www4hu| 亚洲999一在线观看www| 亚洲一区日韩| 欧美黑人一区二区| 亚洲制服在线观看| 天堂а√在线中文在线鲁大师| 岳张嘴把我的精子吞下去| 国产一区二区电影| 粉嫩aⅴ一区二区三区四区| 久久av红桃一区二区禁漫| 无码人妻精品一区二区三区温州| 久草在线最新视频| 日韩精品在线免费观看视频| 国产午夜一区二区三区| 久久人人爽人人爽人人片av不| 永久看看免费大片| 2023欧美最顶级a∨艳星| 国产亚洲a∨片在线观看| 日本成人中文字幕在线视频| 日韩欧美国产激情| 免费看污黄网站在线观看| 欧美在线二区| 九九热爱视频精品视频高清| av激情成人网| 国产精品一区二区三区四区在线观看| 成年人视频免费在线观看| 亚洲网站免费| 欧美va在线观看| 高清欧美精品xxxxx| 国产一区二区福利视频| 一区二区不卡免费视频| 国产无遮挡在线视频免费观看| 亚洲一区在线视频观看| 青青青国产在线视频| 中文在线资源天堂| 日本tube24xxxxx| 国产成人久久久久| 国内精品写真在线观看| 午夜小视频在线观看| 国色天香2019中文字幕在线观看| 久久精品国产亚洲av久| 国模大胆一区二区三区| 精品国产区一区二区三区在线观看| 亚洲精品aⅴ| 一区二区在线观看网站| 成人亚洲一区二区| youjizzjizz亚洲| 午夜激情视频在线播放| 日韩视频一区在线观看| 空姐吹箫视频大全| 岛国爱情动作片在线| 青青草成人激情在线| 香蕉视频xxx| 国产浮力第一页| 国产精品一区二区你懂得| 国产99久久精品一区二区永久免费| 亚洲欧美福利视频| 永久免费看mv网站入口亚洲| 久久av老司机精品网站导航| 亚洲va在线| 看成年女人免费午夜视频| 日本www在线观看视频| 欧美中文日韩| 日韩欧美在线观看强乱免费| 91精品人妻一区二区三区四区| av成人毛片| 日韩亚洲国产免费| 97久久综合区小说区图片区| 影音先锋在线中文| 欧美一区二区在线观看| 青青草原一区二区| 欧美成在线观看| 国产一区二区在线免费| 国产精品一区在线免费观看| 福利片在线免费观看| 色小说视频一区| gogo高清在线播放免费| 在线播放亚洲激情| 国产精品一区二区果冻传媒| 狠狠爱在线视频一区| 狠狠色噜噜狠狠狠狠888奇米| 免费观看久久久4p| 精品一区二区亚洲| 国产精品福利网站| 欧美一级视频在线播放| 秋霞无码一区二区| 精品久久国产视频| 欧美性生活一区| 亚洲欧美国产日韩综合| 色欲av无码一区二区人妻| 色先锋久久av资源部| 午夜精品区一区二区三| 国产精品视频一区二区三区经| 欧美专区日韩| 国产午夜电影| 国产精品久久色| 久久久久久久久免费看无码| 狠狠爱成人网| 懂色av蜜桃av| 亚洲永久免费网站| 久久综合综合久久综合| 免费网站在线观看黄| 亚洲国产高清自拍| 在线观看日本网站| 136国产福利精品导航网址应用| 精品伦精品一区二区三区视频| 亚洲va欧美va天堂v国产综合| 91精品在线观看入口| 国产高清视频一区二区| 欧美a视频在线观看| 懂色av一区二区三区| 99re久久最新地址获取| 国产精品美腿一区在线看| 综合久久一区二区三区| 欧美一级淫片播放口| 这里只有精品国产| 西瓜成人精品人成网站| 亚洲一级二级三级在线免费观看| 成人爱爱网址| 国产黄色麻豆视频| 免费cad大片在线观看| av中文字幕在线不卡| 精品影片在线观看的网站| 成人久久一区二区| 亚洲激情成人| 青青草国产成人a∨下载安卓| 国产精品一级无码| 精品国产网站| 国产亚洲精品自在久久| 欧美影院在线| 全程偷拍露脸中年夫妇| 欧美日韩mp4| 亚洲第一色av| 欧美日韩中出| 91社区在线高清| 91精品国产91久久久久麻豆 主演| 国产激情一区| 最新91在线| 婷婷四月色综合| 国产在线一区视频| 亚洲精品国产精品国自产观看浪潮| 美美哒免费高清在线观看视频一区二区| 欧美色xxxx| 日韩 国产 欧美| 久久国产三级精品| 精品国产精品国产偷麻豆| 亚洲精品在线影院| 91极品视频在线| 综合日韩av| 国产福利电影在线播放| 在线免费观看黄色网址| av网站大全免费| 菠萝蜜视频在线观看www入口| 日本中文字幕伦在线观看| 午夜精品一区二区三区在线观看| 国语对白一区二区| 久久影院100000精品| 亚洲欧洲免费| 日韩欧美精品在线观看| 在线国产精品一区| 国产精品一区二区免费视频| 91在线观看免费高清| 国产精品毛片无遮挡高清| 第一次破处视频| 在线观看的日韩av| 日韩国产成人在线| 国产欧美日韩视频| 日韩Av无码精品| 久久性感美女视频| 中文字幕视频一区二区| h网站在线免费观看| 精品偷拍激情视频在线观看| 国产福利成人在线| 国产一区二区主播在线| 欧美日韩一区综合| 欧美啪啪精品| 精品一区二区三| 亚洲福利一区二区| 久久精品无码av| 国产精品久久久久久久天堂第1集| 国产日韩欧美中文| 国产原创精品视频| 亚洲日本护士毛茸茸| 日韩免费高清在线| 亚洲激情一区二区三区| 偷拍精品精品一区二区三区| 樱空桃在线播放| 欧美一区二区在线播放| 三级影片在线看| 在线国产视频一区| 欧美性猛交xxxx乱大交蜜桃| 在线中文字幕亚洲| 8v天堂国产在线一区二区| 女女色综合影院| 蜜桃久久av一区| 欧美性猛交xxxx免费看手交| 国产精品理论片| 最新国产精品久久| 精品国产一二三| 欧美一三区三区四区免费在线看| 国产精品污www在线观看| √新版天堂资源在线资源| 波多野结衣中文字幕一区二区三区| 欧美午夜性生活| 亚洲精品少妇网址| gogo在线高清视频| 国内精品小视频在线观看| 亚洲日韩色图| av网页在线观看| 777777777亚洲妇女| 丰满少妇一区二区三区专区| 一本大道亚洲视频| 久久综合中文| 国产精品久久久久久久久久久久久久| 亚洲一区二区三区sesese| 欧美日韩视频| 日韩av网站导航| av午夜在线观看| 在线天堂资源www在线污| 免费观看成人在线视频| 国产精品黄色大片| 中国一区二区视频| 僵尸再翻生在线观看免费国语| 亚州国产精品久久久| 在线视频成人| 欧美xxbbb1手交| 日韩一级片在线播放| 欧美视频在线观看一区二区| 精品盗摄女厕tp美女嘘嘘| 麻豆一二三区精品蜜桃| 亚洲欧美国产另类首页| 欧美视频一区二区三区四区| 波多野结衣视频在线看| 亚洲人metart人体| 欧美激情一区二区三区久久久| 尤物视频在线看| 亚洲国产精品无码久久久久高潮| 亚洲国产精品专区久久| 日韩第一页在线| 在线欧美成人| www国产成人免费观看视频 深夜成人网| 日夜干在线视频| www狠狠操| 九色视频在线观看免费播放| 国产精品77777竹菊影视小说| 色综合久久久久久久久| 日本中文字幕在线观看视频| 亚洲盗摄视频| 6080亚洲精品一区二区| 久久精品视频在线| 欧美精品videossex少妇| 久久久久久五月天久久久久久久久| 欧美一区二区免费| 99热超碰在线| 国产成人精品免费一区二区| 视频免费在线观看| 亚洲av无码国产精品永久一区| 亚洲成人精品视频在线观看| 欧美亚洲精品在线观看| 在线观看成人免费视频| 日韩一区精品| 美女视频网站黄色亚洲| 午夜亚洲伦理| 国户精品久久久久久久久久久不卡| 二区三区偷拍浴室洗澡视频| 欧美欧美一区二区| 中文字幕日韩经典| 国产成人免费在线观看不卡| 色激情天天射综合网| 久久久久久国产免费a片| 在线一区日本视频| 国产成人啪午夜精品网站男同| 国产精品12区|