国产精品青草久-国产精品情侣愉拍-国产精品区网红主-国产精品区一区二-国产精品热久久-国产精品热热热-国产精品人aⅴ-国产精品人成在线-国产精品人妻人伦-国产精品人人

金喜正规买球

DevExpress WinForms中文教程:Data Grid - 如何創建和管理數據?

翻譯|使用教程|編輯:龔雪|2024-11-18 10:28:16.883|閱讀 123 次

概述:本文主要介紹如何使用DevExpress WinForms的Data Grid組件在代碼中創建和管理數據以及應用數據注釋屬性,歡迎下載最新版組件體驗!

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關鏈接:

在本教程中您將學習如何在代碼中為網格控件創建數據源,還將看到如何應用數據屬性使網格應用適當的編輯模式、單元格編輯器和輸入驗證規則。

P.SDevExpress WinForms擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!

獲取DevExpress WinForms v24.1正式版下載

DevExpress技術交流群11:749942875      歡迎一起進群討論

使用DevExpress項目向導創建一個簡單的數據源

在創建新解決方案時,首先使用DevExpress模板集合中的DevExpress Project Wizard(項目向導)創建一個項目。

DevExpress WinForms中文教程圖集

啟動應用程序,看到網格顯示了樣本數據。

DevExpress WinForms中文教程圖集

切換到代碼來定位此數據的來源,向導會自動生成代碼,包括表單構造函數中的InitGrid方法調用。該方法使用Person類的5個實例填充BindingList,然后將BindingList對象分配給網格控件的屬性。

C#

class Person {
string firstName;
string secondName;
string comments;
public Person(string firstName, string secondName) {
this.firstName = firstName;
this.secondName = secondName;
comments = String.Empty;
}
public Person(string firstName, string secondName, string comments)
: this(firstName, secondName) {
this.comments = comments;
}
public string FirstName {
get { return firstName; }
set { firstName = value; }
}
public string SecondName {
get { return secondName; }
set { secondName = value; }
}
public string Comments {
get { return comments; }
set { comments = value; }
}
}

public Form1() {
// ...
InitGrid();
}

BindingList<Person> gridDataList = new BindingList<Person>();
void InitGrid() {
gridDataList.Add(new Person("John", "Smith"));
gridDataList.Add(new Person("Gabriel", "Smith"));
gridDataList.Add(new Person("Ashley", "Smith", "some comment"));
gridDataList.Add(new Person("Adrian", "Smith", "some comment"));
gridDataList.Add(new Person("Gabriella", "Smith", "some comment"));
gridControl.DataSource = gridDataList;
}

VB.NET

Friend Class Person
Private firstName_Renamed As String
Private secondName_Renamed As String
Private comments_Renamed As String
Public Sub New(ByVal firstName As String, ByVal secondName As String)
Me.firstName_Renamed = firstName
Me.secondName_Renamed = secondName
comments_Renamed = String.Empty
End Sub
Public Sub New(ByVal firstName As String, ByVal secondName As String, ByVal comments As String)
Me.New(firstName, secondName)
Me.comments_Renamed = comments
End Sub
Public Property FirstName() As String
Get
Return firstName_Renamed
End Get
Set(ByVal value As String)
firstName_Renamed = value
End Set
End Property
Public Property SecondName() As String
Get
Return secondName_Renamed
End Get
Set(ByVal value As String)
secondName_Renamed = value
End Set
End Property
Public Property Comments() As String
Get
Return comments_Renamed
End Get
Set(ByVal value As String)
comments_Renamed = value
End Set
End Property
End Class

Public Sub New()
' ...
InitGrid()
End Sub

Private gridDataList As New BindingList(Of Person)()
Private Sub InitGrid()
gridDataList.Add(New Person("John", "Smith"))
gridDataList.Add(New Person("Gabriel", "Smith"))
gridDataList.Add(New Person("Ashley", "Smith", "some comment"))
gridDataList.Add(New Person("Adrian", "Smith", "some comment"))
gridDataList.Add(New Person("Gabriella", "Smith", "some comment"))
gridControl.DataSource = gridDataList
End Sub

在最簡單的情況下,這就是如何在代碼中創建數據。定義一個表示記錄的對象,然后創建這樣一個對象的集合,并將該集合分配給網格的屬性。

創建更復雜的數據源

現在來看幾個用代碼創建數據并將其綁定到網格的示例。

 您可以定義作為數據記錄的自定義類,本教程中的示例代碼文件包含3個類的定義:CompanyPublicInfo、CompanyPrivateInfo和Product,每個類都包含自己的屬性,這些屬性將用作數據字段。

C#

// ...
public class CompanyPublicInfo {
public string CompanyName { get; set; }
public string Country { get; set; }
public string City { get; set; }
public string Url { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string AdditionalInfo { get; set; }
}
// ...

VB.NET

Public Class CompanyPublicInfo
Public Property CompanyName() As String
Public Property Country() As String
Public Property City() As String
Public Property Url() As String
Public Property Email() As String
Public Property Phone() As String
Public Property AdditionalInfo() As String
End Class

這個文件后面定義的GridSampleDataList類提供了3個方法:GetCompanyPrivateInfo、GetCompanyPublicInfo和GetProductSample,這些方法中的每一個都返回一個由相應類的對象填充的BindingList:

C#

public class GridSampleDataList {
static public List<CompanyPublicInfo> GetCompanyPublicInfo() {
return new List<CompanyPublicInfo> {
new CompanyPublicInfo() {
AdditionalInfo = "Some Info",
City = "Glendale",
CompanyName = "Developer Express",
Country = "USA",
Email = "info@devexpress.com",
Phone = "1234567890",
Url = "www.devexpress.com",
},
// ...
};
}
// ...
}

VB.NET

Public Class GridSampleDataList
Public Shared Function GetCompanyPublicInfo() As List(Of CompanyPublicInfo)
Return New List(Of CompanyPublicInfo) From {
New CompanyPublicInfo() With {
.AdditionalInfo = "Some Info",
.City = "Glendale",
.CompanyName = "Developer Express",
.Country = "USA",
.Email = "info@devexpress.com",
.Phone = "1234567890",
.Url = "www.devexpress.com"
}
}
End Function
' ...
End Class

 現在創建允許應用程序用戶在這三個數據源之間切換的UI,返回到主表單設計,您可以看到添加到Ribbon Control的編輯器,下拉列表將包含三個與前面定義的數據源類型相對應的項。

DevExpress WinForms中文教程圖集

現在處理事件,根據當前選擇的下拉列表項將不同的BindingList對象分配給網格的 。

C#

private void barEditItem1_EditValueChanged(object sender, EventArgs e) {
DevExpress.XtraBars.BarEditItem item = sender as DevExpress.XtraBars.BarEditItem;
if(item == null) return;
switch (item.EditValue as string) {
case "Company public info":
gridControl.DataSource = GridSampleDataList.GetCompanyPublicInfo();
break;
case "Company private info":
gridControl.DataSource = GridSampleDataList.GetCompanyPrivateInfo();
break;
case "Product info":
gridControl.DataSource = GridSampleDataList.GetProductSample();
break;
}
}

VB.NET

Private Sub barEditItem1_EditValueChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim item As DevExpress.XtraBars.BarEditItem = TryCast(sender, DevExpress.XtraBars.BarEditItem)
If item Is Nothing Then
Return
End If
Select Case TryCast(item.EditValue, String)
Case "Company public info"
gridControl.DataSource = GridSampleDataList.GetCompanyPublicInfo()
Case "Company private info"
gridControl.DataSource = GridSampleDataList.GetCompanyPrivateInfo()
Case "Product info"
gridControl.DataSource = GridSampleDataList.GetProductSample()
End Select
End Sub

要確保基于當前可用的數據字段重新創建網格列,請處理事件,該事件在網格每次接收到新數據源時觸發。在事件處理程序中,只需調用 方法即可完成所需的工作。

C#

void gridControl_DataSourceChanged(object sender, EventArgs e) {
DevExpress.XtraGrid.GridControl grid = sender as DevExpress.XtraGrid.GridControl;
if(grid == null) return;
grid.MainView.PopulateColumns();
(grid.MainView as GridView).BestFitColumns();
}

VB.NET

Private Sub gridControl_DataSourceChanged(ByVal sender As Object, ByVal e As EventArgs)
Dim grid As DevExpress.XtraGrid.GridControl = TryCast(sender, DevExpress.XtraGrid.GridControl)
If grid Is Nothing Then
Return
End If
grid.MainView.PopulateColumns()
TryCast(grid.MainView, GridView).BestFitColumns()
End Sub

運行應用程序,看看它是如何工作的,應用程序仍然以自動生成的樣例數據啟動。如果您從Ribbon中的下拉列表中選擇一個項目,網格將顯示來自相應數據源的數據。

DevExpress WinForms中文教程圖集
應用數據標注屬性

請注意,所有網格列都顯示了其默認編輯器,并應用了默認格式。例如,Product Info數據包含不能完全查看的多行文本,因為默認的網格單元格編輯器只允許單行文本。Company Public Info數據包括顯示為簡單文本字符串的url和電子郵件,以及理想情況下應該使用電話掩碼格式的電話號碼。最后,Private Company Info顯示不應該立即可見的密碼。

改變這種情況的一種方法是訪問列對象并更新它們的設置,但這意味著每次將數據源綁定到數據感知控件時都應該這樣做。另一種方法是使用Microsoft提供的、大多數DevExpress數據感知控件支持的數據注釋屬性。為了能夠使用這些屬性,請確保您的應用程序引用了System.ComponentModel.DataAnnotations名稱空間。

有兩種方法可以使用這些屬性,第一種也是最簡單的方法是在每個數據字段之前定義所需的屬性,這就是對Product類所做的工作。某些屬性指示數據類型,以便分配適當的單元格編輯器。ReadOnly屬性允許您禁用特定字段的數據編輯,還可以應用數據輸入驗證規則,正如Range屬性所做的那樣。

C#

using System.ComponentModel.DataAnnotations;

public class Product {
[ReadOnly(true)]
public double UnitPrice { get; set; }
[EnumDataType(typeof(ProductCategory))]
public int Category { get; set; }
[Display(Description = "The amount of currently available product")]
public int Quantity { get; set; }
[DataType(DataType.Text), Display(Order = -1)]
public string Text { get; set; }
[DataType(DataType.MultilineText)]
public string MultilineText { get; set; }
[DataType(DataType.Currency), Range(200, 5000)]
public int Currency { get; set; }
[DataType(DataType.Date)]
public DateTime Date { get; set; }
[DataType(DataType.Time)]
public DateTime Time { get; set; }
}

VB.NET

Imports System.ComponentModel.DataAnnotations

Public Class Product
<[ReadOnly](True)>
Public Property UnitPrice() As Double
<EnumDataType(GetType(ProductCategory))>
Public Property Category() As Integer
<Display(Description := "The amount of currently available product")>
Public Property Quantity() As Integer
<DataType(DataType.Text), Display(Order := -1)>
Public Property Text() As String
<DataType(DataType.MultilineText)>
Public Property MultilineText() As String
<DataType(DataType.Currency), Range(200, 5000)>
Public Property Currency() As Integer
<DataType(DataType.Date)>
Public Property [Date]() As Date
<DataType(DataType.Time)>
Public Property Time() As Date
End Class

啟動應用程序,切換到產品信息數據,看看它現在的樣子。多行文本使用MemoEdit單元格編輯器,它允許我們完整地查看文本,而Currency列只允許指定范圍內的數據。

DevExpress WinForms中文教程圖集

當您擁有多個類中不使用的唯一數據字段時,這種方法非常有用,完成相同任務的另一種方法是使用MetadataType類屬性。使用這種方法,您可以定義一次數據字段屬性,然后將該定義用于多個類。它還可以提高代碼的可讀性,因為數據屬性不必出現在每個屬性定義之前。

Private 和 Public Company Info類都將使用由CompanyProductMetadata類定義的元數據。

C#

[MetadataType(typeof(CompanyProductMetadata))]
public class CompanyPublicInfo {
// ...
}

// ...

public class CompanyProductMetadata {
[Display(ShortName = "Company", Name = "Company Name", AutoGenerateFilter = false)]
public object CompanyName;
[Display(Order = 2)]
public object Country;
[Display(Order = 1), Editable(false)]
public object City;
[DataType(DataType.Url)]
public object Url;
[DataType(DataType.EmailAddress)]
public object Email;
[DataType(DataType.PhoneNumber), Required]
public object Phone;
[DataType(DataType.Text), Display(Order = -1)]
public object Text;
[Display(AutoGenerateField = false, Description = "This column isn't created")]
public object AdditionalInfo;
[DataType(DataType.Password), StringLength(20, MinimumLength = 3)]
public object Password;
// ...
}

VB.NET

<MetadataType(GetType(CompanyProductMetadata))>
Public Class CompanyPublicInfo
' ...
End Class

Public Class CompanyProductMetadata
<Display(ShortName := "Company", Name := "Company Name", AutoGenerateFilter := False)>
Public CompanyName As Object
<Display(Order := 2)>
Public Country As Object
<Display(Order := 1), Editable(False)>
Public City As Object
<DataType(DataType.Url)>
Public Url As Object
<DataType(DataType.EmailAddress)>
Public Email As Object
<DataType(DataType.PhoneNumber), Required>
Public Phone As Object
<DataType(DataType.Text), Display(Order := -1)>
Public Text As Object
<Display(AutoGenerateField := False, Description := "This column isn't created")>
Public AdditionalInfo As Object
<DataType(DataType.Password), StringLength(20, MinimumLength := 3)>
Public Password As Object
' ...
End Class

運行應用程序來查看結果,切換到Public Company Info數據源,可以看到URL現在顯示為實際的超鏈接,電話號碼使用屏蔽輸入。

DevExpress WinForms中文教程圖集
完整代碼

本例中的解決方案包括一個數據源文件,該文件有三個提供網格數據的類——CompanyPublicInfo、CompanyPrivateInfo和Product。它們三個的屬性通過使用MetadataType屬性從CompanyProductMetadata類派生數據注釋屬性。最終用戶可以使用表單頂部的編輯器調用Get…方法之一,該方法將用示例數據填充網格。

重要提示:要使用數據注釋屬性,您需要在您的解決方案中引用System.ComponentModel.DataAnnotations庫。

DataSource.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GridDataAttributes {
[MetadataType(typeof(CompanyProductMetadata))]
public class CompanyPublicInfo {
public string CompanyName { get; set; }
public string Country { get; set; }
public string City { get; set; }
public string Url { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string AdditionalInfo { get; set; }
}

[MetadataType(typeof(CompanyProductMetadata))]
public class CompanyPrivateInfo {
public string Password { get; set; }
public DateTime Date2 { get; set; }
public double Sales { get; set; }
public double Profit { get; set; }
public double SalesVsTarget { get; set; }
public double MarketShare { get; set; }
public double CustomersSatisfaction { get; set; }
}

public class Product {
[ReadOnly(true)]
public double UnitPrice { get; set; }
[EnumDataType(typeof(ProductCategory))]
public int Category { get; set; }
[Display(Description = "The amount of currently available product")]
public int Quantity { get; set; }
[DataType(DataType.Text), Display(Order = -1)]
public string Text { get; set; }
[DataType(DataType.MultilineText)]
public string MultilineText { get; set; }
[DataType(DataType.Currency), Range(200, 5000)]
public int Currency { get; set; }
[DataType(DataType.Date)]
public DateTime Date { get; set; }
[DataType(DataType.Time)]
public DateTime Time { get; set; }
}

public class CompanyProductMetadata {
[Display(ShortName = "Company", Name = "Company Name", AutoGenerateFilter = false)]
public object CompanyName;
[Display(Order = 2)]
public object Country;
[Display(Order = 1), Editable(false)]
public object City;
[DataType(DataType.Url)]
public object Url;
[DataType(DataType.EmailAddress)]
public object Email;
[DataType(DataType.PhoneNumber), Required]
public object Phone;
[DataType(DataType.Text), Display(Order = -1)]
public object Text;
[Display(AutoGenerateField = false, Description = "This column isn't created")]
public object AdditionalInfo;
[DataType(DataType.Password), StringLength(20, MinimumLength = 3)]
public object Password;
[DisplayFormat(DataFormatString = "MMMM/yyyy"), Display(Name = "Date 2")]
public object Date2;
[DisplayFormat(DataFormatString = "#,##0,,M")]
public object Sales;
[DisplayFormat(DataFormatString = "#,##0,,M")]
public object Profit;
[DisplayFormat(DataFormatString = "p", ApplyFormatInEditMode = true), Display(Name = "Sales vs Target")]
public object SalesVsTarget;
[DisplayFormat(DataFormatString = "p0", ApplyFormatInEditMode = false)]
public object MarketShare;
[Display(Name = "Cust Satisfaction")]
public object CustomersSatisfaction;
}

public enum ProductCategory {
Beverages = 1,
Fruit = 2,
Vegetables = 3,
Meat = 4,
Condiments = 5,
Confections = 6,
DairyProducts = 7,
GrainsCereals = 8,
Seafood = 9
}

public class GridSampleDataList {
static public List<CompanyPrivateInfo> GetCompanyPrivateInfo() {
return new List<CompanyPrivateInfo> {
new CompanyPrivateInfo() {
CustomersSatisfaction = 3.1,
Date2 = DateTime.Now,
MarketShare = 42,
Password = "123qwerty",
Profit = 4951515,
Sales = 311414134,
SalesVsTarget = 0.0277,
}
};
}
static public List<CompanyPublicInfo> GetCompanyPublicInfo() {
return new List<CompanyPublicInfo> {
new CompanyPublicInfo() {
AdditionalInfo = "Some Info",
City = "Glendale",
CompanyName = "Developer Express",
Country = "USA",
Email = "info@devexpress.com",
Phone = "1234567890",
Url = "www.devexpress.com",
}
};
}
static public List<Product> GetProductSample() {
return new List<Product> {
new Product() {
Currency = 1000,
Category = 2,
Date = DateTime.Now,
MultilineText = "Line1\r\nLine2\r\nLine3",
Quantity = 321,
Text = "Sample Text",
Time = DateTime.Now,
UnitPrice = 1800,
}
};
}
}
}

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Grid;

namespace GridDataAttributes {
public partial class Form1 : XtraForm {
public Form1() {
InitializeComponent();
gridView1.OptionsView.ShowGroupPanel = false;
gridControl1.DataSourceChanged += gridControl1_DataSourceChanged;
}

void gridControl1_DataSourceChanged(object sender, EventArgs e) {
gridControl1.MainView.PopulateColumns();
(gridControl1.MainView as GridView).BestFitColumns();
}

protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
//gridControl1.DataSource = CompanyProductList.GetSampleData();
//companyProductListBindingSource.DataSource = CompanyProductList.GetSampleData();
//companyProductBindingSource.DataSource = CompanyProductList.GetSampleData();
}

private void barEditItem3_EditValueChanged(object sender, EventArgs e) {
switch (barEditItem3.EditValue as string) {
case "Company public info":
gridControl1.DataSource = GridSampleDataList.GetCompanyPublicInfo();
break;
case "Company private info":
gridControl1.DataSource = GridSampleDataList.GetCompanyPrivateInfo();
break;
case "Product info":
gridControl1.DataSource = GridSampleDataList.GetProductSample();
break;
}
}
}
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.Skins;

namespace GridDataAttributes {
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
SkinManager.EnableFormSkins();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}

Program.vb

Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Threading.Tasks
Imports System.Windows.Forms
Imports DevExpress.Skins

Namespace GridDataAttributes
Friend NotInheritable Class Program

Private Sub New()
End Sub

''' <summary>
''' The main entry point for the application.
''' </summary>
<STAThread> _
Shared Sub Main()
SkinManager.EnableFormSkins()
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(False)
Application.Run(New Form1())
End Sub
End Class
End Namespace

Form1.vb

Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports System.Windows.Forms
Imports DevExpress.XtraEditors
Imports DevExpress.XtraGrid.Views.Grid

Namespace GridDataAttributes
Partial Public Class Form1
Inherits XtraForm

Public Sub New()
InitializeComponent()
gridView1.OptionsView.ShowGroupPanel = False
AddHandler gridControl1.DataSourceChanged, AddressOf gridControl1_DataSourceChanged
End Sub

Private Sub gridControl1_DataSourceChanged(ByVal sender As Object, ByVal e As EventArgs)
gridControl1.MainView.PopulateColumns()
TryCast(gridControl1.MainView, GridView).BestFitColumns()
End Sub

Protected Overrides Sub OnLoad(ByVal e As EventArgs)
MyBase.OnLoad(e)
'gridControl1.DataSource = CompanyProductList.GetSampleData();
'companyProductListBindingSource.DataSource = CompanyProductList.GetSampleData();
'companyProductBindingSource.DataSource = CompanyProductList.GetSampleData();
End Sub

Private Sub barEditItem3_EditValueChanged(ByVal sender As Object, ByVal e As EventArgs) Handles barEditItem3.EditValueChanged
Select Case TryCast(barEditItem3.EditValue, String)
Case "Company public info"
gridControl1.DataSource = GridSampleDataList.GetCompanyPublicInfo()
Case "Company private info"
gridControl1.DataSource = GridSampleDataList.GetCompanyPrivateInfo()
Case "Product info"
gridControl1.DataSource = GridSampleDataList.GetProductSample()
End Select
End Sub
End Class
End Namespace

DataSource.vb

Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.ComponentModel.DataAnnotations
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks

Namespace GridDataAttributes
<MetadataType(GetType(CompanyProductMetadata))> _
Public Class CompanyPublicInfo
Public Property CompanyName() As String
Public Property Country() As String
Public Property City() As String
Public Property Url() As String
Public Property Email() As String
Public Property Phone() As String
Public Property AdditionalInfo() As String
End Class

<MetadataType(GetType(CompanyProductMetadata))> _
Public Class CompanyPrivateInfo
Public Property Password() As String
Public Property Date2() As Date
Public Property Sales() As Double
Public Property Profit() As Double
Public Property SalesVsTarget() As Double
Public Property MarketShare() As Double
Public Property CustomersSatisfaction() As Double
End Class

Public Class Product
<[ReadOnly](True)> _
Public Property UnitPrice() As Double
<EnumDataType(GetType(ProductCategory))> _
Public Property Category() As Integer
<Display(Description := "The amount of currently available product")> _
Public Property Quantity() As Integer
<DataType(DataType.Text), Display(Order := -1)> _
Public Property Text() As String
<DataType(DataType.MultilineText)> _
Public Property MultilineText() As String
<DataType(DataType.Currency), Range(200, 5000)> _
Public Property Currency() As Integer
<DataType(DataType.Date)> _
Public Property [Date]() As Date
<DataType(DataType.Time)> _
Public Property Time() As Date
End Class

Public Class CompanyProductMetadata
<Display(ShortName := "Company", Name := "Company Name", AutoGenerateFilter := False)> _
Public CompanyName As Object
<Display(Order := 2)> _
Public Country As Object
<Display(Order := 1), Editable(False)> _
Public City As Object
<DataType(DataType.Url)> _
Public Url As Object
<DataType(DataType.EmailAddress)> _
Public Email As Object
<DataType(DataType.PhoneNumber), Required> _
Public Phone As Object
<DataType(DataType.Text), Display(Order := -1)> _
Public Text As Object
<Display(AutoGenerateField := False, Description := "This column isn't created")> _
Public AdditionalInfo As Object
<DataType(DataType.Password), StringLength(20, MinimumLength := 3)> _
Public Password As Object
<DisplayFormat(DataFormatString := "MMMM/yyyy"), Display(Name := "Date 2")> _
Public Date2 As Object
<DisplayFormat(DataFormatString := "#,##0,,M")> _
Public Sales As Object
<DisplayFormat(DataFormatString := "#,##0,,M")> _
Public Profit As Object
<DisplayFormat(DataFormatString := "p", ApplyFormatInEditMode := True), Display(Name := "Sales vs Target")> _
Public SalesVsTarget As Object
<DisplayFormat(DataFormatString := "p0", ApplyFormatInEditMode := False)> _
Public MarketShare As Object
<Display(Name := "Cust Satisfaction")> _
Public CustomersSatisfaction As Object
End Class

Public Enum ProductCategory
Beverages = 1
Fruit = 2
Vegetables = 3
Meat = 4
Condiments = 5
Confections = 6
DairyProducts = 7
GrainsCereals = 8
Seafood = 9
End Enum

Public Class GridSampleDataList
Public Shared Function GetCompanyPrivateInfo() As List(Of CompanyPrivateInfo)
Return New List(Of CompanyPrivateInfo) From { _
New CompanyPrivateInfo() With {.CustomersSatisfaction = 3.1, .Date2 = Date.Now, .MarketShare = 42, .Password = "123qwerty", .Profit = 4951515, .Sales = 311414134, .SalesVsTarget = 0.0277} _
}
End Function
Public Shared Function GetCompanyPublicInfo() As List(Of CompanyPublicInfo)
Return New List(Of CompanyPublicInfo) From { _
New CompanyPublicInfo() With {.AdditionalInfo = "Some Info", .City = "Glendale", .CompanyName = "Developer Express", .Country = "USA", .Email = "info@devexpress.com", .Phone = "1234567890", .Url = "www.devexpress.com"} _
}
End Function
Public Shared Function GetProductSample() As List(Of Product)
Return New List(Of Product) From { _
New Product() With {.Currency = 1000, .Category = 2, .Date = Date.Now, .MultilineText = "Line1" & ControlChars.CrLf & "Line2" & ControlChars.CrLf & "Line3", .Quantity = 321, .Text = "Sample Text", .Time = Date.Now, .UnitPrice = 1800} _
}
End Function
End Class
End Namespace

更多產品資訊及授權,歡迎“”!


年終活動火熱開啟中

標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉載自:慧都網

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
相關產品
控件
  • 產品功能:UI界面
  • 源 碼:非開源
  • 產品編號:12349
  • 當前版本:v25.1 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: DevExpress 正式授權
  • ">DevExpress DXperience Subscription

    高性價比的企業級.NET用戶界面套包,助力企業創建卓越應用!

    控件
  • 產品功能:UI界面
  • 源 碼:非開源
  • 產品編號:12348
  • 當前版本:v25.1 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: DevExpress 正式授權
  • ">DevExpress WinForms Subscription

    為Windows Forms平臺創建具有影響力的業務解決方案,高性價比WinForms界面控件套包。

    控件
  • 產品功能:UI界面
  • 源 碼:非開源
  • 產品編號:10740
  • 當前版本:v25.1.4 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: DevExpress 正式授權
  • ">DevExpress Universal Subscription

    優秀的界面控件開發包,幫助企業構建卓越應用!

    title
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    丰满少妇人妻无码区 | 亚洲av无码专区国产乱码不卡 | 中文字幕av电影在线观看 | 亚洲欧美成人 | 日韩av在线免费看 | 午夜a级理论片在线播放不 午夜a级理论片在线播放不卡 | 激情视频在线观看国产 | 免费无码片国产在线观看 | 亚洲国产精品网站在线播放 | 国产一级天堂无码 | 天堂网av一区二区三区 | 国产黄色精品观看 | 国产在线自在拍91 | 中文字幕免费大全日本一片 | 国产一级特黄大片在线观看 | 亚洲免费成人av电影在线看 | 久久99九九精品久久久久齐齐 | 99精品久久久久久久久久综合 | 亚洲av无一区二 | 国产在线观看麻豆91精品免费 | 久久r这里| 久久www免费人成一看片 | 亚洲av无码成人精品区天堂 | 国产精品亚洲高清 | 人人超人人超碰超国产 | 国产乱子经典视频在线观看 | 国产日本精品在线观看 | 亚洲精品综合在线一区二区 | 无码人妻av免费一 | 中文字幕热久久久久久久 | 在线人成免费视频69国产 | 日韩欧精品无码视频无删节 | 国产成人亚洲精品狼色在线 | 欧美成人精品三级网站在线观看 | 日本深夜福利19禁在线播放 | 中文字幕亚洲一区 | 国产精品视频六区 | 亚洲日韩一二三区 | 亚洲无码精品在 | 四虎影视久久久免费 | 91精品国产91热久久p | 神马午夜福利我不卡手机电影 | 国产精品露脸国语对白 | 国产福利精品87福利电影 | 国产清纯白嫩美女正无套播放 | 国产精品爽爽ⅴa在线观看 国产精品爽爽v | 日韩99在线一级 | 色香欲综合天天 | 呦男呦女| 欧美丝袜高跟鞋一区二区 | 亚洲欧美成人久久综合中文 | 国产熟女露脸大叫高潮 | 国产不卡在 | 亚洲量大福利视频网 | 欧美在线视频一区二区 | 自拍影视乱伦国产 | 在线成人手机免费看片 | 精品亚洲无码一区 | 精品国产美女福到在线直播 | 亚洲av无码潮喷在线观看 | 狠狠色狠狠综合天天 | av香港三级级在线 | 无码乱码av天堂一区二区 | 白丝内射 | 91九色中文在线播放 | 果冻传媒2025精品视频 | 日韩好片一区二区在线看 | 91破解版免费版无限量丝瓜 | 国产精品永久免费10000 | 国产办公室秘书无码精品99 | 国产91精品在线观看 | 91亚洲国产成人久久精品蜜臀 | 91视频入口 | 国产精品一区二区三区在线观看 | 午夜小电影 | 日韩乱码人妻无码中文字幕视频 | 国产成人亚洲精品青草天美 | 日本中文无线码在线观看 | 精品久久久久久久久午夜福利 | 亚洲成av人网址 | 日日夜人人澡人人澡人人看免 | 亚洲国产av无码专区亚洲av | 国内一本到不卡在线观看 | 精品久久久久久无码中文字幕 | 蜜臀av无码国产精品色午夜麻豆 | 黄色视频 | 国产精品美女久久久久∧v爽 | 99视频国产精 | 美女粉嫩流水一区二区三区 | 国模一区二区三区精品久久久久久 | 亚洲av无码潮喷在线观看 | 无码精品一区二 | 国产精品视频白 | 亚洲精品日韩专区 | av天堂久久 | 国产成a人片在线观看 | 免费无码又爽又刺激高潮的视频 | 四虎永久 | 午夜神器成在线人成在线人免 | 成年无码动漫av片在线观看 | 91a国产尤物视频 | 午夜视频福利在线观看 | 欧美激情一区二区在线观看不 | 91精品国产麻豆福利在线 | 久久不见久久见免费影院www | 国产成人精品日本视频 | 亚洲精品久久久久久伊人 | 99久久99久久 | 亚洲免费成人网 | 丰满女邻居做爰bd | 国产一区二区精品久久91 | 国产成人无码精品一区 | 中文无码日韩欧 | 亚洲欧美日韩综合久久 | 精品香蕉在线视频专区 | 亚洲v国产v天堂a无码二区 | www.黄色网址 | 国产精品亚洲综合色区韩国 | 91极品尤物电影完整版在线观看 | 午夜人成视频在线男人每天 | 97人人爽人人爽人人一区二区 | 亚洲av无码乱码精品国产九色 | 国产一级a爱片在线观看视频 | 天堂一区二区在线观看视频 | 国产女人高潮抽搐喷水视频 | 91精品日本久久久久久牛牛 | 在线观看麻豆 | 国产乱人伦偷精品视频 | 女人三级片电影一区二区区 | 一区二区三区日 | 麻豆国产v| 动漫精品一区二 | 白丝兔女郎m开腿sm调教室 | 日日做夜狠狠爱欧美黑人 | 日本高清一区二区三区中文字幕 | 在线观看国产污的网站 | 国产欧美在线 | 色情网一 | 国产又黄又大又粗视频 | 91在线无码精品秘入口9色 | 久久99热只有频精品 | 国产午夜福利在线永久视频 | 久久99中文字幕 | 中文字幕人妻少妇伦伦伦 | 中文字幕久精品免费 | 国产999免费在线视频 | 中文字幕免费大全日本一片 | 成人午夜久久青苹果影院 | 国产免费第一区久久 | 欧美日韩国产高清在线 | 国产jk福利 | 国产av一区二区三区 | 性行为视频无码 | 久久96热在精品国产三级 | 无码高清影视网免费观看超清 | 久久er99国产精品免费 | 国产成人三区四区 | 国产免费av片在线看观看 | 日本不卡一区二区三区 | 麻豆福利视频 | 国产日韩欧美综合色视频在线 | 成人涩涩小片视频日本 | 国产末成年 | 国产乱码在线精品可播放 | 国产精品对白交换视频 | av午夜午夜快憣 | 成人免费看片又大又黄 | 亚洲中文字幕aⅴ天堂自拍 亚洲中文字幕aⅴ无码天堂 | 二区三区在线观看 | 精品无码国产免费网站视频 | 激情综合婷婷 | 国产精品一区二区高清在线 | 3d动漫精品啪啪一 | 日本高清中文字幕高清在线 | 欧洲女人性开放视频过性 | 午夜三级a三级三点窝 | 老司机免费高清av本道 | 亚洲av无码一区二区三区在线高 | 成人免费观看97 | 国产av一区二区三区传媒 | 国产a一级无码毛片一区二区三区 | 欧美最猛黑人xxxxx猛交 | 国产午夜激无码av片在线观看 | 成人亚洲欧美久久久久 | 日本动漫在中国的传播学研究 | 99热成人精品国产免 | 国产精品成人无码视频 | 日韩经典欧美一区二区三区 | 亚洲精品一区二区久 | 98精品国产高清在线看入口 | 激情欧美吞精口爆一区二 | 日产国产亚洲系列 | 亚洲av无码专区亚洲a | 99re8精品视频在线播放 | 少妇高潮一区二区三区99 | 国产又粗又大硬免费视频 | 黄色网页在线观看 | 久久99精品久久久久久齐齐 | 国产精品香蕉成人网在线观看 | 十八禁啪h亚洲av羞羞网站 | 欧美精品在线一区二区三区 | 国产线路中文字幕 | 国产偷国产偷亚洲高清app | 亚洲爱啪视| 国产午夜视频在 | 亚洲日韩在线影院 | 成年片免费观看网站免费观看 | 国内免费 | 国产精品中 | 亚洲精品无码av中文字幕 | 国内免费视频一区二区三区 | 97精品精品一区二区 | 成人乱码一区二区三区av | 久久国产v一级毛多内射 | 午夜欧美精品久久久久久久 | 日日夜夜精品视频天天7799男男 | 一级生性活片全黄在线观看 | 在线国产亚洲91 | 亚洲aaaa级特黄毛片发布 | 黄色成年人软 | 亚洲成a人片在线观看中文无码 | 欧美视频一区二区三区 | 亚洲成年| 国产内射一级一片内射精品视频 | 人妻少妇精品无码专区吞精 | 国产无码在线观看免费在 | 国产经典| 亚洲国产精品午夜伦不卡 | 天天干天天日 | 99精品国产在热 | 精品伊人久久大线蕉色 | 91精品国产aⅴ一区二区 | a级毛片无码免费真人久 | 高潮毛片无遮挡高清免费 | 亚洲一区日韩一区 | 午夜精品久久久久久毛片 | 91久久精品无码一区二区三区 | 色欲久久久天天天综合网精品 | 国产免费看黄的私人影院 | 无码av在线a√av在线 | 亚洲欧美日韩久 | 99久久精品免费 | 欧美最猛性xxxxx大叫 | 91精品国产综合久久久久久 | 国产片av国语在线观看手机版 | 日本综合国产欧美 | 国产成人久久精品二三区麻豆 | 黑人好猛厉害爽受不 | 欧美激情一区二区久久久 | 中文字幕色av一区二区三区 | 午夜a级理论片在线 | 性色av一区二区三区咪爱四虎 | 日韩人妻无码精品无码中文字 | 无码乱码av天堂一区二区 | 91高清免费国产自产 | 久久成午夜精品一区二区三区 | 日韩av激情中文在线观看 | 午夜精品被窝影院 | 97人妻起碰免费 | 亚洲午夜成人片在线观看 | 97精品伊人久久久大香线蕉 | 无码免费中文字幕视频 | a级伦国产乱理片在线观看 a级毛片 | 国产裸体舞一区二区三区 | 麻豆文化传媒精品1区2区3区 | 精品国产群3p在线观看 | 日韩系列精品自拍不卡视频 | 91久久精品视频 | 国产午夜无 | 精品欧美成人高清在线观看观看视频 | 老熟女高潮一区二区三区 | 精品无码国产自产在线 | 国产成人精品视频一区二区不卡 | 亚洲国产精品成人a∨在线 亚洲国产精品成人av在线 | 色综合99久久久无码国产精品 | 国产麻豆91 | 亚洲国产日韩欧美综合久久 | 国产精品高清全国免费观看 | 国产成人无码午夜视频在线 | 天天干人人操 | 人妻斩无码正片免费视频 | 国产精品69白浆在线观看免费 | 欧美高清一区二区三区 | 国产萌白酱在线一区二区 | 日本欧美一二三区色视频 | 国产一区丝袜高跟在线i91传媒 | 日本波多野结衣久久久久 | 麻豆免费观看高清完整视频 | 中文字幕不卡高清视频在线 | 中文字幕韩国三级理论无码 | 国产一级毛片大陆 | 欧洲吸奶大片在线看 | 国产精品一区在线蜜臀 | 无码av永久免费专区不卡 | 91午夜福利国产在线观看 | 无码潮吹无毒不卡 | 成全高清在线播放电视剧 | 在线不卡长片av | 992tv午夜福利 | 国产内地激情精品毛片在线一 | 午夜福利伦伦电影理论片在线观看 | 国产aⅴ久久免费精品 | 无码人妻一区二区三区免费看 | 日韩国产av中文字幕 | a级国产乱理论片在线观看丶 | 国产伦子伦对白视频 | 国产日韩在线播放 | 日韩系列精品自拍不卡视频 | 精品久久av电影 | 国产91熟女高潮一区二 | 日韩欧精品无码视频无删节 | 国产v片在线观看精品亚洲 国产v日本v欧美v一二三四区 | 亚洲精品无码久久久影院相关影片 | 成人精品一区二区 | 四虎影视久久久免费 | 性欧美暴力猛交69hd | 国产精品高清中 | 性中国熟女毛耸耸性视频 | 国产精品国产三级国产av中文 | 韩国日本亚洲欧洲一区二区三区 | 国产亚洲av片天天在线观看人 | 激情小说亚 | 99久久综合精品国产 | 精品国产电影久久九九 | 国产九色视 | 人人狠狠久久综合亚洲婷婷 | 国产视频91福利一区二区三区 | 国产精品免费看久久久无码 | 亚洲国产欧美日韩一区二区 | 高潮在线观看 | 成人免费毛片内射美女app | 欧美日韩在线播放 | 波多野结衣av无码久久一区 | 一级片中文字幕在线观看 | 国产成人无码a区在线观看视频不卡 | a在线观看免费网站大全 | 国产女明星专区视频在线播放 | 亚洲av成人片色在线观看 | 91极品女神私人尤物在线播放 | 黄网站色成年片大免费高清 | 丰满少妇被猛烈进入高清app | 黄色一级片视频 | 国产成人无码精品不卡 | 国产精品自在拍一区二区不卡 | 国产成人无码午夜视频在线观看 | 中文字幕精品入口 | 国产免费mv大片人人电影播 | 国产精品国产av片国产 | 精品自在自线之la | 欧美一区二区精品 | 亚洲欧美日韩精 | 超碰免费超碰免费人人 | 91久久人澡人人添人人爽 | 亚洲国产精品99久久久久久 | 黄色一级片播放 | 中文字幕福利在线观看 | 国产精品婷婷久久久久久 | 91在线看片| 日本岛国免费 | 天美传媒麻豆精东蜜桃 | 无码久久精品人妻一区二区三区 | 亚洲av天天做在线观看 | 韩国无码一区二区三区在线观看 | 国产成人精品午夜福利在线观看 | 99久久免费精品国产免费高清 | 在线精品国产中文字幕 | 特色a级毛片 | 97福利精品第一导航 | 国产精品系列在线观看 | 国产精品爽爽ⅴa在线观看 国产精品爽爽v | 精品国产91乱码一区二区三区 | 最新综合精品亚洲网址 | 91久久精品国产91久久久久 | a片人人澡c片人人人妻蜜臀 | 中文字幕久久精品乱码乱码 | 在线精品视频一区二区三四 | 亚洲av无码一区二区二三区 | 欧美成人午夜精品一区二区 | 国产白丝在 | 国产av丝袜旗 | 日韩乱码人妻无码中文字幕 | 国产成人久久精品一区二区三区欧美 | 69成人免费视频无码专区 | 99久久婷婷国产综合精品青草免费 | 国语av最新自产拍在线观看 | 天天操天天曰 | 99久久精品国产91久久久 | 无码国产在线视频一区 | 日本特色特黄久久久久久 | 日韩人妻无码一区二区三区久 | 成人看片黄a免费看视频 | 国产yw.196天堂网站 | 亚洲女人天堂在线观看 | 麻豆果冻传媒新剧国产杜鹃 | 亚洲国产成人av手机在线观看 | 成人av免费视频在线观看 | 国产成人亚洲精品 | 69久久国产露脸精品国产 | 欧洲国产伦久久久久久久 | 精品一区二区三区四区在线观 | 中文字幕久久精品一区二区三区 | 中文亚洲av片在线观看无码 | 精品国产不卡在线观看免费 | 国产熟女一区二区三区五月婷 | 日韩无码av片亚洲成人精品网站 | 日本欧美一区 | 人妻无码熟妇乱又伦精品视频 | 亚洲av无码专区亚洲av桃 | 天天干天天日天天碰 | 国产91精品在线观看导航 | 精品久久久久久亚洲中文字幕 | 欧美午夜精品一区二区三区 | 久久99精品久久久久久 | 精品国产a | 欧亚激情偷乱人伦小说视频 | 国产精品区在线播放vr | 毛片无码久久 | 国产在线精品国自产拍影院同性 | 丰满女邻居做爰bd中文字幕 | 中文字幕v亚洲日本电影 | 精品无码视频 | 91丝袜美腿的无尽魅力呈现 | 中文字幕精品一区二 | 97久久天天综合色天天综合色hd | 久久国产成人午夜av影院 | 欧美精品一区二区三区在线观看 | 精品国产成人三级在线观看 | 91蜜桃传媒精品久久久一区二区 | 国产成人8x视频一区二区 | 中文字幕一区二区三区免费看 | 国产91av在线播放 | 亚洲国产中文在线二区三区免 | 国产成a人亚洲精v品无码樱花 | 日本久久高清一区二区三区毛片 | 羞羞影院无码一区二区 | 国产成人aa免费视频 | 国产v综合v亚洲欧美久久 | 亚洲精品在线观看视频 | 国产精品va在线观看无码不卡 | 亚洲国产精品高清在线第1页 | 在线观看av网站永久免费观看 | 亚洲精品无码专区在线播放 | 无码专区午夜福利在线观看 | 国产精品自在线拍国产 | 中文字幕中字幕亚洲 | 四虎影视成人永久免费观 | 亚洲av成人片色在线观看 | 亚洲国产性爱第一页 | 亚洲av无码一区二区三区人 | 中文www天堂在线网 中文不卡视频 | 亚洲每日更新在线国产精品原 | 99re6在线视频精品免费下载 | 午夜不卡老 | 1区2区3区视频软件排行榜 | 亚洲中文字幕无码永久在 | 成人毛片18女人毛片免费看视频 | 九九线精品视频在线播放 | 91女神精品系列在线观看66 | 97精品丰满人妻一区二区三区 | 免费无遮挡无码视频在线观看 | 国产精品爆乳在线播放 | 91视频免费国产成人 | 成人特级毛片www免费版 | 少妇被粗大猛进进出出 | 国产永久在线视频 | 日韩不卡在线播放 | 日韩人妻精品一区二区三区视频 | 日韩无码精品一区 | 牛牛影视亚洲av片在线播放 | 91尤物免费在线观看精品 | 亚洲一区av无码少妇电影 | 亚洲av无码 | 亚洲资源站中文在线丝袜 | 麻豆国产96在线 | 国产日产亚洲系列最新 | 九九九亚洲精品 | 成人嫩草影院免费观看 | 国产成年网站v片在线观看 国产成年无码av片在线 | 果冻传媒一区二区天美传媒 | 亚洲av无码片一区二区三区 | 一区二区三区国产亚洲网站 | 国产一区二区三区乱码福利 | 91福利一区二区三区 | 国产一线二线三线女 | 欧洲美熟女乱又伦av色欲 | 午夜精品福利电 | 91国内产香蕉v4.4.9最新版 | 国产性夜夜春夜夜 | 国产乱码卡二卡 | 欧美成人一级视频 | 国产成人无码精品久久久影院 | 精品欧美成人高清在线观看 | 精品国产ⅴ无码大片在线观看 | 嫩草91短视频ap| 91成人在线视频 | 国产精品麻豆成人av网 | 久久成年 | 国产又大又黄又粗又爽 | 天天干夜夜骑 | 天天草天天干 | 一区二区欧美日韩高 | 伊人亚洲 | 国产久久九九精品无码免费 | 狠狠综合久久av一区二区 | 国产成人午夜福利在线观看视 | 亚洲午夜av无码专区在线播放 | 99久久精品免费看国产一区二区 | 欧美日本一区二区三区 | 日韩无码av片亚洲成人精品网站 | 亚洲中文字幕无码爆乳app | 福利视频网站 | 亚洲日韩欧美另类蜜桃 | 在线观看欧美亚洲少妇 | 在线偷着国产精选视频 | 日韩精品极品视频在线观看免费 | 亚洲日韩在线观看不卡 | 午夜视频污在线观看 | 尤物tv国产精品看片在线 | 国产日产欧美一级在线 | 国产成人精品三区 | 亚洲午夜电影伦理在线观看 | 91情侣在线精品国产 | 91亚洲一区二区在线观看不卡 | 成全视频在 | 成人高清图片素材免费下载 | 国产v片在线播放 | 国产在线观看无码不卡 | 在线精品视频一区二区 | 国产毛片精品 | 国产精品自拍视频合集 | 久草视频 | 成年美女黄网站18禁免费图片 | 国产麻豆精品久久久 | 无码中文影视三级 | 亚洲熟妇无码在线观看 | 人妻少妇精品视频二区 | 亚洲中文字幕综合日韩 | 九九久久精品视频 | 无码国产精品一区二区免费 | 日韩一卡二卡三 | 国产99视 | 成人久久91 | 国产一区二区三区四区观看 | 精品无码在线91天堂视频 | 亚洲日韩欧美一区二区三区 | av免费黄色网址 | 国产亚洲成av人片在 | 午夜福利电影 | 国产成人精品一区二三区2025 | 精品国产在天天在线 | 亚洲字幕成人中文在线观看 | 国产99视频精品免费专区 | 亚洲乱码 | 日韩在线欧美精品 | 欧美激情一区二区三区高清视 | 91se在线看片国产 | 欧美色欧美亚洲高清在线观看 | 国产日产欧洲无码视频 | 国产三级aⅴ视频在线观看 国产三级a毛视频在线观看 | 91精品国产免 | 精品国产午夜福利在线观看 | 亚洲av电影天堂男人的天堂 | 国产v亚洲v欧美v专区 | 在线观看精品视频一区二区 | 欧美曰韩一| 自在自线国产精品 | 99久久99热精品免费观看国产 | 国产福利萌白酱精品tv一区 | 爆乳护士hd完整版在线播放 | 亚洲视频一区二区三区在线看 | 综合亚洲av图区 | 国产精品麻豆成人av网 | 欧美成人观看免费全部完 | 亚洲欧美国产另类va在线观看 | 国产中老年妇女精品 | 最新天堂√最新版中文在线99 | 亚洲av成本人无 | 国产97精品乱码在线观看 | 91制片天美果冻传媒 | 女自慰喷潮久久久www | 精品国产一卡2卡3卡二 | 丰满的瑜伽老师 | 国产精品福利网红五月天 | 亚洲av无码一区二区三区在线观 | 国产在线观看不卡免费高清 | 性情中人中文网 | 无人区国产剧免费在线观看 | 国产一区三区二区中文在线 | 国产色婷婷精品免费视频 | 天天操天天操 | 亚洲午夜国产精品日本亚洲欧美在线 | 亚洲男人的天堂av无码 | 国产99在线a视频 | 成年人免费在线看的惊悚动作片 | 国产成人午夜高潮毛片 | 日本特级淫片免费看 | 高潮又爽又大又黄无遮挡免费 | 九九九精品成人免费视频 | 中文字幕精品久久久久久 | 91极品18禁国产在线播放 | 欧美熟妇三级在线观看 | 欧美激情一区二区三区高清视 | 欧美一区二区在线观看视频 | 日本不卡新2區 | 国产最变态调教视频大全 | 一区二区日韩国产精品 | 国产精品美女久久久久av爽 | 无码久久精品人妻一区二区三区 | 在线观看三级片国产 | 午夜av在线播放 | 熟妇女人妻丰满少妇中文字幕 | 高清无码中文字 | 在线看精品 | 插我舔内射18免费视频 | 精品国产91av自在自线麻豆 | av在线无码专区一区 | 国产99| 九九九九九九伊人 | 国产精品99久久久久久人 | 99久久精品无码专区 | 在线视频精 | 狠狠干导航 | 中文字幕日韩欧美一区二区三区在线 | av不卡国产在线观看 | 亚洲av无码久久 | 91色色无码综合国产 | 日韩av在线中文字幕高清 | 国产高清日韩一区二区四季 | av在线免费观看网站 | 精品无码国产一区二区入口91 | 精品探花在线 | 无码av久久久久久久久 | 精品国产免费第一区二区三区日 | 亚洲精品无码专区国产乱码 | 久草免费版下载 | 亚洲视频中文字幕在线观看 | 成人精品视频99在线观看免费 | 无码国产精品午夜不卡 | 99精品久久久久久久婷婷 | 中文字幕亚洲无线码在线中 | 91香蕉国产线在线观看免费网友评价 | av一本久道久久波多野结衣 | 国产精品国产自线 | 成人性生交大片免费看96 | 欧美成人精品第一区二区三区 | 91在线无码精品秘在线观看 | 国产乱理伦片在线观看 | 韩国理论片久久电影网 | 国产一区二区成人久久免费影院 | 亚洲国产精品视频自拍 | 国产成人亚洲综合 | 国产人成午夜免视频网站 | 欧美亚洲宗合另类在线观看 | 91电影在线观看 | 国产乱码一区二区三区爽爽爽女仆 | 精品人妻系列无码一区二区三区 | 性色av无码 | 在线观看国产精品不卡的av | 欧美午夜精品久久久久久 | 亚洲av无码成h人在线观看 | 91在线精品无码秘?入口九色 | 无码亚洲一区二区三区在线观看 | 国产精品91福利一区二区三区 | 国产色欲av一区二区三区 | 操人网站 | 亚洲av高清一区二区毛片下卡 | 中文字幕爆乳巨爆乳 | 午夜福利视频 | 国产激情怍爱视频在线观看 | 欧美最猛性xxxxx大叫 | 午夜丰满少妇性开放视频 | 精品久久久一区二区三区 | 99热久久这里只有精品免费 | 国产成人精品免费视频大全麻 | 日韩成人精品二区 | 国产av大学生 | 国产毛片精品视频网站 | 国产成人精品影院 | 欧美三级不卡在线观看 | 国产色噜噜噜在线精品 | 午夜福利一区二区三区高清视频 | 91精品国产日韩 | 日韩亚洲影院 | 无码国产精品视频一区二区三区 | 97久久精品亚洲中文字幕无码 | 人人操人人摸一区二区三区不卡 | 亚洲日韩一页精品发布 | 欧美孕妇xxxx做受欧美88 | 精品国产免费网站二区二区 | 精品国产一区二区三区无码 | 日本精品在线观看 | 国产欧美日韩va另类 | 成年人午夜激情视频在线观看 | 亚洲国产精品成人综合久久久 | 国内自拍视频在 | 国产aⅴ一区二区三区精品 国产aaaa | 精品国产乱码久久久久久毛片 | 中文无码肉感爆乳在线观看 | 97伦理影院[枫霜] | 一级特黄aaa大片在线观看 | 久久不见久久见免费影院视频 | 亚洲无码在线观看a | 欧美精品人人做人人爱视频 | 欧美日韩国产激情一区二区三区 | 99亚洲乱人伦aⅴ精品 | 精品一区二区av天堂 | 亚洲精品成人网 | 中文字幕在线 | 无码国产精品一区二区免费式直播 | 激情欧美吞精口爆一区二 | 日韩精品卡通无码 | 欧美成人国产 | 国产成人精品无码免费视频 | 国产精品碰碰人人a久久 | 国产成人精品亚洲av无人区一区 | 国产精品无码专区在线观看 | 国产精品成aⅴ人片在线观看 | www日韩av中文字幕.com | 午夜福利看片 | 欧美性一区二区三区 | 桃蜜桃av秘无码一区二区三区 | 欧美三级私人影院一区二区 | 91国产天堂网 | 亚洲中文字幕无码av一区 | 亚洲男人的天堂av无码 | 欧美最猛黑人xxxxx猛交 | 国产成人黄色视频 | 国产精品日韩欧美一区二区三区 | 国产免费爽爽视频免费可以看 | 亚洲午夜成人片在线观看 | 性色av无码 | 欧美日韩国语aⅴ视频网站 欧美日韩激情视频一区二区三区 | 国产精品香港三级国产av | 亚洲成av人片无码不卡播放器 | 福利姬液液酱喷水网站在线观 | 十大免费无广告污软件推荐 | 亚洲av成人精品网站在线播放 | 自拍少妇精品无码 | 麻豆国产精品 | 亚洲欧美日韩动漫一区 | 国产无码一区二区三区不卡视频 | 99久久国产综合精品女同 | 无码国产在线国产97在线 | 国产精品乱码高清在线观看 | 国产日韩av免费无码一区二区 | 国产免费久久精品久久久 | 亚洲v无码专区日韩乱码不卡 | 无码国产色欲xxxx视频 | 中日韩无码水多多影视 | 亚洲国产日韩欧美综 | 人妻精品久久久久 | 狠狠操91| 无码国产精品一区二区免费久久 | 精品999日本久久久影院 | 欧美综合在线观看 | 波多野结衣国产一区二区三区 | 国产亚洲中文日本不卡二区 | 99久久婷婷国产综合精品青草免 | 国产成人精品优优av | 天天躁日日躁狠狠躁人妻 | 亚洲高潮痉挛中文 | 91久久另| 国产精品青青青高清在线密亚 | 伊人色综合视频一区二区三区 | 国产精品自产拍在线观看免费 | 国产精品18久久久久久妖精 | 欧美日韩在线精品一区二区 | 精品国产一区二区三区不卡在线 | 亚洲av高清不卡久久 | 国内自拍亚洲91 | 区不卡二区不卡三区 | 91精品国产全国免费观看蜜桃 | 中文字幕日韩久久综合影院 | 三级成年网站在线观看 | 国产青青草天堂岛av片 | 狠狠干免费视频 | 国产一级内射在线视频 | 国产在线中文字幕 | 国产成人综合亚洲天堂 | 国产精品一区二区三区四区 | 国产成人无码18禁午夜福利p | 成人免费网站久久久 | 人人澡人人澡碰人人看软件 | 成人一区二区三区视频 | 国产三级视频在线观看 | 国产高潮又爽又无遮挡又免费 | 中文字幕无码免费不卡视频 | 日本欧美一区二区三区乱码 | 99久久婷婷国产青草精品 | 国产精品福利一区 | 亚洲国产精品白丝观看 | 日本强好片久久久久 | 国产伦子伦对白视频 | 敌伦交换一区二区三区流畅不卡顿 | 国产在线视频网站 | 国产在线观看91精品不卡 | 亚洲av无码午夜嘿嘿嘿 | 国产精品亚洲精品日韩已满 | 操一操亚洲人妖高清av |