欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

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
    日韩免费一区 | 国产短视频精品区第一页 | 九月丁香婷婷激情四射视频一区 | 欧美午夜性刺激在线观看免费 | 亚洲欧美综合精品成人导航 | 国产在线精品手机播放 | 国产黑色丝袜在线观看一区 | 国产午夜亚洲精品不卡福利 | 中文字幕乱码免费视频 | 欧美人成中文视频在线观看 | 又大又粗又硬又黄的免费视频 | 999zyz玖玖资源站永久 | 天堂最新| 男人的天堂a | 国产剧情自创在线播放 | 欧美区精品系列在线观看不卡 | 国内外精品激情刺激在线 | 免费在线电影网站 | 99久热国产精品视频尤物 | 亚洲欧美日韩国产另例 | 视频在线播放 | 国产日产欧产美韩 | 国产第二页页在线播放 | 国产精品午夜福利免费老师 | 综合福利在线 | 国产免费一区二区三区在线 | 国产aⅴ精品一区二区三区 国产91精品一 | 日韩欧美亚洲国产永久在线观看 | 亚洲色大成网站www永久网站 | 把你的香肠放入我的扇贝里 | 亚洲午夜在线x88∨ 亚洲精品国偷自产在线 | 日韩欧美性爱视频网站翘臀 | 亚州一区二区三区免费大片 | 欧美日韩一区二区综合 | 热播影视剧在线观看 | 国产1区2区3区4区免费 | 日本视频网站在线w | 99热九| 国产精品三三级在线 | 日产中文字幕在线精品一区 | 亚洲精品中文字幕乱码三区 | 国产精品一品二区三区的使用体验 | 亚洲精品区午夜亚洲精品区 | 免费人成视频在线播放视频 | 国产交换精品一区二区 | 日本免费一区二区视频 | 国产高清视频色拍 | 香蕉在线精品视频 | 亚洲日韩欧美在线一区二区 | 免费人成在线观看播放 | 日本黄页网站 | 亚洲欧美日韩国产精品 | 国内精品视频在线播放一区 | 免费观看男女性恔配视频 | 国产精品视频第一区二区三区 | 国产丝袜视频一区二区三区 | 亚联创展包装(清远)有限公司 | 国内精品自线在拍 | 狠狠热精品免费视频 | 极品欧美一区二区 | 黑人巨大精品欧美一区在线 | 国产欧美亚洲专区在线 | 日韩国产免费一区二区三区 | 一本大道香蕉久97在线播放 | 亚洲va在线观看日本 | 在线亚洲欧美日韩每日更新 | 拍国产真| 大陆国语| 无人影院手机版在线观看免费 | 欧美精品+在线播放 | 国产精品猎奇系列在线观看 | 亚洲欧美中文日韩aⅴ | 国产大片51精品免费观看 | 亚洲日本韩国 | 制服丝袜中文字幕在线观看 | 日日夜夜精品 | 亚洲国产精品 | 亚洲ssswww视频 | 免费一区 | 私人影院午夜在线观看 | 国产熟女熟女 | 1769国产精品视 | 国产黃片在线观看 | 国产欧美日韩综合精品一区二区三 | 神马家庭影院 | 欧美日本国产 | 欧美日韩亚洲国内一区二区三区 | 一女被多男玩喷潮视频免费看 | 国产日本欧美精品 | 伦理电影在线观看 | 人人色在线视频播放 | 精品福利一 | 国产字幕制服中文在线 | 性欧美高清 | 欧亚天堂在线播放 | 另类图区亚 | 欧美日韩精品国产—区在线 | 西瓜视频国产 | 日韩精品中文字幕在线 | 国产一级二级 | 日韩中文字幕网站 | 亚洲欧美综合视频 | 2025亚洲欧美日韩在线观看 | 日韩午夜福利免 | 国产亚洲精品国产福利 | 欧美伦理一区 | 中日韩无砖码一线二线 | 国产高清在线丝袜精品一区 | 一区二区三区视频 | 国产精品成人va在线 | 免费精品视频一二区 | 国产精华液和欧美的精华液的区 | 91成人国产网站在线观看 | 亚洲成?v人片在线观看翻墙网站 | 蜜桃视频一区二区在线观看 | 末成年ass浓精pics | 三级网站在线免费观看 | 国产欧美一区二区樱花在线观看 | 91高清免费国产自产 | 欧美国产合集在线视频 | 樱桃视频影 | 费精品国产一区国产精品剧情在线 | 亚洲欧美中文在线观看4 | 国产性生大 | 夜鲁鲁鲁夜夜综合视频 | 精品黑人一 | 精品va在线观看 | 日本成人动漫私人影院 | 国产精品免费视频网站 | 欧美亚洲国产清纯综合图区 | 黑人一区二区在线 | 日本国产欧美精品在 | 日本高清一二三不卡区 | 国产专区一区 | 日韩欧美亚洲一区精选 | 亚洲欧美综合区自拍另类 | 成年免费国产大片 | 中文字幕日本αv一区二区 乱伦国产精品日本 | 成人日韩在线视频观看 | 婷婷电影网 | 午夜福利1000集在线观看 | 成人全部免费观看1314色 | 中文字幕在线视 | 精品国产二区亚洲日本精品 | 亚洲欧美日本韩国 | 蜜桃色永久入口 | 毛多水多ww | 在线观看国产日韩欧美 | 91极品尤物在线观看 | 日韩亚洲成a人片在线观看 国产日产成人免费视频在线观看 | 蜜臀精品一区二区三区在线观看 | 国产午夜福利在线永久视频 | 亚洲精品在线中文字幕视频 | 在线播放一区二区 | 又黄的免费视频 | 欧美人与动性a欧美精品 | 有码+日韩+在线观看 | 在线视频精品免费 | 里啪啦影院大全 | 日韩欧美亚洲一区二区综合 | 亚洲日本在线在线看片4k超清 | 欧美亚洲精品久五月亚洲综合婷婷 | 亚洲亚洲人成综合网络 | 久热这里只有精品99在线观看 | 干天堂在| 亚洲高清中文字幕 | 亚洲va国产日韩欧美精品 | 欧美第一夜 | 国产香蕉大片在线视频 | 区二区三区 | 人人香蕉| 亚洲色妇网站 | 中文字幕亚洲欧美日韩在线不卡 | 一区二区国产最新福 | 免费看国产 | 一区二区国产最新福 | 欧美区一区 | 日本三级2025| 国产人妖ts重口系列网站观看 | 免费观看国产一区二区三区 | 成年人在线免费观看视频 | 大胆gogo无 | 国产一区精品 | 尤物视频免费观看 | 深夜日本 | 亚洲欧洲日 | 视频一区免费 | 日本一在线中文字幕天堂 | 国产一级在线现免费观看 | 国产精品自在线拍国产手机版 | 美国特黄三级完整在线电 | 国产伦精品一区二区三 | 亚洲动作一 | 欧美激情一区二区三区在线播放 | 亚洲成年人免费a级网站 | 按摩推油在线观看国产 | 免费在线观看国内色片网站网址 | 疯狂欧美牲乱大交777 | 中文亚洲欧美日韩无线码 | 妺妺窝人体色www聚色窝仙踪 | 精品欧美亚洲影视 | 妖精视频免费观看 | 狠日狠干日曰射 | 精品国产yw在线观看 | 日韩中文字幕34页视频 | 丰满岳乱妇一区二区三区 | 国产福利资源在线 | 99re国产 | 日韩视频在线 | 欧美mv亚洲mv在线天堂 | 国产亚洲免费视频 | 国产精品538 | 免费在线观看a视频 | 国产精品观看 | 国产97盗摄视频一区二区三区 | 国产综合欧美日韩视频一区 | 国产免费乱理伦片在线观看 | 天堂a√| 日本精品a在 | 亚洲制服丝袜自拍中文字幕 | 妹子干综合 | 中文字幕乱码免费视频 | 国产精品亚洲欧美高清 | 久一线视 | 国产在线不卡人成视频 | 日本黄页免费大片在线观看 | 国产精品精品国产一区二区 | 久拍国产在线观看 | 在线观看国产人视频免费中国 | 亚洲欧洲日韩综合色天使 | 国偷自产视频一区二区久 | 国产欧美日韩精品高清二区综合区 | 日本中文字幕在线视频一区 | 欧美日韩国产激情一区 | 国产欧美精品一区二区三区pp | 91最懂男人的午夜社区 | 国产精品高清一区二区三区不卡 | 欧洲乱码专区一区二区三区四区 | 观看国产 | 亚州欧美自拍另类欧美 | 国产a级毛| 99热国产这里只有精品 | 97中文字幕无线观 | 亚洲国产欧洲在线一区 | 国产国产人免费人成成免视频 | 欧美精品午夜一二三区 | 添国产97 | 91成人精品一区二区三区四区 | 日韩一区二区三区自拍偷拍 | 亚洲中文字幕一区二区三区 | 国产情侣真实露脸在线最新 | 男人本色国产在线综合 | 7878成人国产在 | 91香蕉| 99re热有精品视频国产 | 亚洲a∨午 | 国产精品自在线拍国产 | 国产亚洲免视频在线观看 | 日韩精品一区在线观看 | 老司国产 | 免费高清永久在线不卡 | 免费观看亚洲 | 海量资源每 | 午夜理伦片免费 | 91啦中文成人 | 欧美yw精品日本国产精品 | 亚洲人成网 | 欧美一区二区三区四区婷婷 | 大片在线观看免费 | 国产日韩欧美亚洲精品中字 | 2025最新国产在线精品不卡顿 | 精品国产迪丽热巴在线 | 国产欧美日韩综合精品二区 | 天堂中文字 | 日韩欧美一区二区三区视频在线 | 免费不卡影院 | 亚洲精品一区二区不卡 | 日韩欧美一区二区大胸视频 | 亚洲精品中文字幕码专区 | 99国产在线国语精品2025 | 国产在线国偷精品免费看 | 亚洲国产中文日韩欧美在线 | 日本中文字幕第 | 给我免费观看片在线观看中国 | 星云影院| 欧美精品一区二区在线观看播放 | 在线观看播放 | 亚洲欧美清纯 | 国产在线播放成人免费 | 天堂草原影院电视剧 | 亚洲h成年动漫在线观看不卡 | 小说区图片区激情区视频区 | 国产精品一区二区中文字 | 日本高清中 | 2025最新国产在线不卡a | 2025最新免费电影 | 欧美日韩一区视频导航 | 亚洲大片精品免费在线 | a级日本 | 国色天香精品亚洲精品 | 日韩欧美三级理论在线观看 | 一区两区小视频 | 欧美激情中文字幕一区二区 | ⅴa在线观看 | 精品国产日韩一区二区三区 | 99热精| 国产美女极品免费视频 | 涩涩视频污污 | 亚洲人成伊人成 | 按摩偷拍一区不卡 | 达达兔欧美午夜国产亚洲 | 青青青在线播 | 欧美日韩在线播放成人 | 欧美亚洲国 | 欧美日产国产精品 | 国产亚洲欧美一区二区精 | www.五月婷| 欧美激情一区二区三区中文字幕 | 亚洲视频精品 | 激情国产精品 | 热播电视剧 | 国产网址 | 在线观看国产 | 免费看欧美一级特黄a大片一 | 国产精品一区二区手机看片 | 成人午夜视频在线视频 | 亚洲人成电影手机在线网站 | h网站国 | 午夜男女| 青青青国产女精品视频 | 国产精品美女网站在线看 | 国产+高| 国产一区二区视频 | 国产一区二区三区亚洲 | 日韩一级在线精品国产 | 中文国产欧美在线观看 | 草莓视频在线免费看 | 99精品国产福利在线观看 | 亚洲欧美国产精品一区二区 | 亚洲精品二区国产综合野狼 | 91视频app下载 | 国产偷窥成熟女精品视频 | 国产最新一区二区三区天堂 | 色色片色色 | 国产精品日 | 国产自在现偷国产精品国产日韩 | 99玖玖爱在线精品免费观看 | 亚洲一区二区高清 | 日韩中文字幕第二页 | 国自产偷精品不卡在线 | 欧美日韩国产一区二区三区在线 | 国产精品一区99 | 免费视频专区一国产盗摄 | 99玖玖爱在线精品免费观看 | 日本高清一区二区三区水蜜桃 | 日本一区二区不卡中文字幕 | 美女爽到尿喷出来 | 国产欧美亚洲一区二区三区 | 精品国内一区二区三区免费 | 一次处破女hd精品 | 亚洲十大国产精品污污 | 成人免费国产片 | 国产在线精品国自产 | 国产妇女性爽视频免费 | 国产网红主播自拍视频在线观看 | 91午夜视 | 国产精品久片在 | 国产免费人成视频在线播放播 | 日产国产一区二区 | 综合一区二区三区激情在线 | 一区青椒 | 精品成人| 91青青青 | 成人午夜污污在线观看网站 | 最近高清中文字幕免费mv视 | 国产精品一区二区在线精品 | 成人午夜福利免费 | 天美麻花星空视 | 在线播放精品一区二区三区 | 中文字幕手机在线看片不卡 | 浪货叫的再浪一点张开 | 91极品尤物在线观看 | 亚洲国产精品sss在线观 | 国产精品亚洲 | 欧美国产日本高清不卡免费 | 欧美日韩在线亚洲一区二区三区 | 国产亚洲色 | 91精品视频在线观看免费 | 92国产精品午夜福利免费 | 五月天亚洲婷婷综合 | 午夜福利国产在线观看1 | 午夜a级理论片在线播放 | 天美传奇mv免费观看完整版 | 欧美性爱 | 日本一区二区三区四区不卡 | 一码二码三码 | 亚洲综合激情另类小说区 | 三年在线观看免费完整版中文 | 日韩精品中文字幕在线 | 精品视频一区二区三三区四区 | 国产美女自卫慰视频福利 | 亚洲欧美日韩二区三区 | 日韩国产欧美视频在线播放 | 91精品丝袜国产在线一区 | 亚洲欧美性另类春色 | 欧美日韩国产一级 | 欧美a级片视频 | 国产人成激情视频在线观看 | 国产ch | 绝对真实国产乱 | 精品国产一区二区三区2025 | 无尽动漫性视频╳╳╳3d | 欧美亚洲视频一区 | 思思精品 | 国产精品三p一区二区视频 h片在线播放免费 | 国产精品日本一区二区不卡视频 | 国产福利自产拍在线观看 | 国产精品福利自产拍在线观看 | 日本高清视频免 | 国产欧美一区二区樱花在线观看 | 亚洲一区中 | 日韩女优在线观看 | 91精品专区国产在线观看高清 | 亚洲国产aⅴ综合网 | 国产乱码1卡二卡3卡四卡 | 国产户外露出在线观看 | 国产suv精品一区二区62 | 欧洲+日本+中国 | 亚洲中文国产综合 | 91视频网站 | 秋霞电影院yy2933 | 免费网站看v片在线a | 日韩一区二区免费视频 | 国产精品乱码一 | 每日更新在线观看 | 亚洲欧洲日韩一区二区日本 | 国产中文字幕玖玖观看互动交流 | 亚洲欧美日韩一区二区在线观看 | 国产精品厕所电影 | 精品三级影视在线免费观看 | 丰满尤物一区二区三区 | yes4444视频在线观看 | 99精品视频在 | 欧美综合视频在线观看 | 苍苍影院午夜最新 | 吉吉影音先锋 | 国产日本卡二卡三卡四卡 | 中字幕视频在线永久在线观看免费 | 中文字幕亚洲欧美日韩在线不卡 | 国产成年女人 | 专区网站| 国产99视频精品免视看7 | 伊人热热 | 国产精品乱码高清在线 | 亚洲国产日韩在线人成电影 | 国产在线一卡2卡三卡4卡免费 | 国产2025中文天码字幕 | 亚洲成年看片在线观看男男 | 亚洲一区在线 | 欧美日韩国产一线天午夜秀场 | 91极品尤物 | 精品蜜臀一区二区三区在线 | 国内自拍视频一区二区三区 | 免费国产不卡在线观看 | 精品一区二区三 | 日韩精品极品视频在线观看免 | 精品成人大胸美女视频在线播放 | 国产福利小电影视福利在线 | 欧美、另类亚洲日本一区二区 | 国产丝袜视频在线 | 日本x片成年免费观看视频 性开放的欧美大片黑白配 欧美激合综图片区小说 | 热门电影、电视剧、动 | 日本一区二区三区在线观看网站 | 性欧美暴力猛交6 | 欧美国产日韩二区 | 国产一区二区精品 | 亚洲国产欧美在线人成app | 亚洲国产欧美日韩 | 成年动漫h视频在线观看 | 亚洲一日欧美日韩中文字幕 | 啦啦啦在线观看www 三三影院网 | 亚洲一区日本一区 | 欧美一区精品视频一区二区 | 2025免费国产a| 麻花传媒在线mv免费观看视频 | 国产精品视频大陆精大陆 | 姐妹5中国版 | 综合欧美日 | 国产亚洲视频在线播放香蕉 | 国产专区一va亚洲v天堂 | 麻花果冻视频大全英文 | 欧美黑人又粗又大又爽免费 | 国精品午夜福 | 大陆国语| 97精品依人久 | 九九线精品视频在线观看视频 | 午夜理伦片免费 | 国产午夜伦伦午夜伦 | 国产微信高清小视频在线播放 | 欧美日韩中文在线 | 国产h视频在线观看免费 | 亚洲性线免费观看 | 中文字幕欧美激情 | 无尽动漫性视频╳╳╳3d | 国产在线观看91精品不卡 | 日本欧美一区 | 不卡无在线一区二区三区观 | 欧美性xx | 手机看片高清国产日韩片 | 国产一区二区三区四区激情 | 日本在线免费 | yy6080午夜理论成人影院 | 91牛牛国产在线无弹窗 | 最近中文字幕 | 国产色产综合色产在线观看视频 | 年轻人在线无毒不卡 | 免费在线观看的网站 | 男女爽爽午夜18污污影院 | 国产欧美在线一区二区三区 | 成人妇女免费播放 | 国产精品免费高清在线观看 | 福利国产视频一区二区 | 亚洲经典一区二区三区 | 欧美亚洲一区电影 | 91精品国产福利尤物免费 | 国产福利在线观看免费第一福利 | 日本中文一二区有码在线 | 日韩色禁网站永久视频 | 日韩国产欧美一区二区三区 | 精品国产一区二区三区不卡 | 最近免费中文字幕大全免费版视频 | 午夜拍拍拍 | 亚洲欧美成va人在线观看 | 国产欧美亚| 国产三区四区五区 | 国产极品在线 | 亚欧乱色国产精品免费九库 | 日韩一级欧美一级一级国产 | 亚洲高清乱码午夜电影网 | 色综合天天综合网 | 自在现偷 | 91福利国产在线在线播放 | 91精品福利自产拍在线 | 国产在线videos| 国产在线观看一区精品 | 亚洲国产专区一区 | 国产网站免费视频 | 一级欧美一级日韩片 | 在线播放精品一区二区三区 | 97人人超| 午夜高清 | 国产伦精品一一区二区三区高清版 | 日韩一区 | 国产免费高清视频在线观看不卡 | 国产亚洲精品综合网在线观看 | 国产寡妇偷人在线观看 | 99相伴健康一生 | 国产资源中文字幕 | 免费国产网站在线观看不卡 | 国产福利小视频在线免费观看 | 国产高清在线视频伊甸园 | 亚洲午夜成激人情在线国内 | 欧美激情一 | 国产精品一区二区播放在线 | 国产午夜视 | 国产在线精品观看一区 | 天天影视| 免费观看网站 | 免费国产a国产 | 精品丝袜国产自在线拍 | 国产精品午夜爽爽爽免费 | 精品一区二区三区在线免 | 国产熟女激情视频自拍 | 精品国产自在在线在线观看 | 欧美日韩国 | 国产热女 | 国产精品va在线播放我和闺蜜 | 色豆豆永| 亚洲黄免费看网站 | 国产精品网红尤物福利在线 | 亚洲国产在一二区三区不卡 | 最新国产一区二 | 自拍影视亚洲高清 | 一区二区三区四区日韩 | 野花免费高| 在线观看www成人影院 | 五月激情丁香婷婷综合第九 | 好看的韩剧在线 | 国产亚洲香蕉片在线观看 | 丝袜美腿精 | 日本高清视频在线www色下载 | 国产极品翘臀在线观看 | 免费福利电影网 | 午夜三级伦理片在线观看 | 国产户外露出在线观看 | 蜜桃视频一区二区三区在线观看 | 99视频在线精品国自产拍亚瑟 | 精品一区二区三区国产视频 | 国产伦一区二区三 | 91欧美日韩91桃 | 99青草青草久热精品视频 | 国产日韩欧美亚洲精品中字 | 日本免费不卡高清网站 | 欧美激情拍拍拍 | 一本精品一区二区在线观看 | 忘忧草日本高清频道 | 亚洲精品中文字幕乱码无线 | 日本高清视频www夜色资源网 | 亚洲国产欧美日韩精品18 | 日韩性生活 | 欧美日韩精品一区二区在线播放蜜 | 国产一区精品视频 | 精品伦精品一区二区三区视 | 国产日韩在线亚洲字幕中文 | 欧美一级中文字幕免费在线 | 午夜视频在线观看免费 | 国产精品极品美女自在线观看免费 | 亚洲v日韩天堂片 | 亚洲国产精品综合小说图片区 | 亚洲欧美日韩中文国产不卡 | 亚洲欧美大码a在线观看 | 国产精品盗摄一区二区在线 | 最近中文字幕视频高清 | 国产日产欧美一区二区蜜桃 | 国产欧美一区二区樱花在线观看 | 国内激情自拍 | www成年人视频| 国产精品66福利在线观看 | 人成a大片在线观看 | 国产全肉乱妇杂乱视频 | 超刺激高跟鞋脚交视频在线 | 国产+欧美+激情 | 免费视频人 | 87国产私拍福利精品视频 | 国产一区三区二区中文在线 | 757国产午夜福利在线播放 | 亚洲理伦片精 | 办公室大战高跟丝袜秘书经理ol | 日本在线中文字幕第一视频 | 奇米777四色成人影视 | 欧美综合亚洲日韩精品区 | 观看视频在线观看 | 国产精品萌白酱永久在线观看 | 中文字幕夫妇交换乱叫 | 国产性猛交╳xxx乱大交 | 热门电影电视剧短剧免费在线观看 | 亚洲亚洲人成综合网络 | 在线精品亚洲一 | 97国产在线公开免费观看 | 天天影视色香欲综合网小说 | 国产女人喷 | 欧美精品亚洲精品日韩传电影 | 宝贝乖把腿分大一点h欧阳凝小说 | 一区二区亚洲精品国产片 | 日本女一区二 | www日韩中文字幕在线看 | 国产精品视频一区二区三区不卡 | 国产福利一区二区久 | 最近高清中文在线字幕在线观看 | 日本精品视频在线 | 国精品日韩欧美一区二区三区 | a级国产乱理伦片在线播放 影视网址 | 国产精品亚洲精品五月 | 99久热只有精品视频免费看 | 日韩v亚洲v欧美v精品综合 | 国产精品大白天新婚身材 | 欧美v亚洲v综合v国产v | 中文字幕影院 | 国产精品亚洲一区二区三区欲 | 视频在线华人精品草 | 国产高清美女主播在线观看 | 99精品视频免费热播在线观看 | 欧洲精品 | 中文字幕精品亚洲电影 | 中文字幕在线免费观看 | 亚洲国产aⅴ成人精品无吗 337p日本人体 | 亚洲欧美日韩精品色xxx | 精品国产自在在线在线观看 | 国产午夜福利院在 | 亚洲精品在看在线观看高清 | 大色综合色综合网站 | 在线涩涩免费观看国产精品 | 国产福利一区二区三区在线观看 | 国产精品艾草在线观看 | 日本毛x片免费视频观看视频 | 97视频在线观看视频 | 99精品国产丝袜在线拍国语 | 亚洲一本大道中文在线 | 亚洲视频在线观看免费 | 免费高清手机在线观看 | 99热这里有免费国内精品 | 国产日本欧美在线观看 | 亚洲成aⅴ人 | 午夜电影国产精品一区 | 亚洲一区在线免费 | 香蕉在线精品视频 | 国产乱码精品一区三上 | 国产激动情五月天 | 日本有码中文字幕第二页 | 国产高清欧美情侣视频 | 男人j放进女人p全黄在线 | 久中文字幕中文字幕亚洲无线 | 影院4k电影在线 | 人在线成视频 | 区一区二区三视频日韩 | 综合久青草视频 | 亚洲国产精 | 天天一区 | 今日吃瓜 | 亚洲一线产区二线产区精华 | 午夜一级韩国欧美日本国产 | 免费电影在线看 | 变态拳头交视频一区二区 | 国产在线观看一级二级三级 | 92午夜福 | 国产凸凹视频一 | 亚洲欧美人高清精品a∨ | 夫妇交换性3中文字 | 977精品视频在线观看 | 日本素人黑人视频 | 亚洲全网 | 国内自拍视频一区二区三区 | 日韩中文字幕高清一区 | 色国产综合免费视频在线播放 | 97亚洲欧 | 国产精品大白天新婚身材 | 亚洲精品一区二区三区视频在线观 | 亚洲人成电影网 | 国产精品自在线拍国产下载 | 国产欧美精品亚洲日本一区 | 国产性生大| 国产精品亚洲片在线观看不卡 | 国产高清一区二区在线免费观看 | 欧美日韩在线一区二区观看 | 中文在线中文资源 | 亚洲va欧美va天堂v国产综合 | 欧美激情视频在线免费观看 | 国产高清精品一区 | 日韩v午夜视频在线观看 | 欧产日产国产精品精品 | 老司机午夜福利 | 国产免费私拍一区二区三区 | 亚洲中文字幕丝袜制服视频 | 热门电影综艺电视剧手机在线观看 | 96国产xxxx免费视频 | 午夜性色一区二区三区不卡视 | 在线观看国产日韩欧美 | 中文字幕免费在线观看 | 国产在线观看91精品不卡 | 亚洲欧美日韩国产综合在线看片 | 99国产一区二区三区亚洲一区 | 国产一区二区精品 | 日本三级在线播放线观看免 | 经典日韩中文字幕综合网 | 免费福利tv | 男人j进入女人p狂 | 明星合成| a天堂中文在线天堂资源中文 | 在线看国产精品 | 一区二区三区在线观看免费 | 亚洲不卡 | 小说区图片区 | 最新在线观看视频国产91 | 国产亚洲精品a在线观看app | 国产偷窥熟 | 欧美三级精品 | 亚洲热视频 | 日韩免费一区 | 香港三级台湾三级在线播放 | aa中文字幕在线观看 | 午夜福利成人污在线观看 | 91精品国产高清一区二区 | 区二区三区在线观看 | 三级综合在线观看精品 | 扒开腿挺进肉嫩小泬喷水网站 | 日韩精品日韩 | 亚洲国产欧美在线 | 国产精品1区2区3区在线播放 | 五月天在线观看视频网站 | 国产中文字幕永久在线观看 | 日本一本免费高清在线dvd | 中文字幕精品一区二区三区在线 | 国产免费人成视频在线观看播放 | 成人高清网站 | 污污网站免费 | 国内精品视频在线播放一区 | 日本中文一 | 水蜜桃成视频人在线看 | 秋霞电影院yy2933 | 朝鲜女人大白屁股ass孕交 | 亚洲欧美日韩国产精选在线观看 | 尤物精品视频一区二区三区 | 国产福利不卡在线观看 | 视频软件短片 | 中文免费国产综合 | 视频在线观看一区 | 国产ts系列紫苑视频在线观看 | 久在线免费观看成年人视频 | 亚洲特黄特色免费手机在线视 |