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

金喜正规买球

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
    午夜福利理论片在线观看 | 欧美日韩在线播放成人 | 午夜影院日韩 | 国产欧美日韩精品第二区 | 日本中文字幕乱码 | 日韩.国产.欧美.亚洲 | 国产亚洲欧洲aⅴ综合一区 ady中文字幕 | 国产女人喷潮视频在线观看免费 | 国产日韩精品一区二区三区在线观 | 酷客影院 | 538国产精品一区二区在线 | 亚洲国产欧美精品一区二区三区 | 99久国产精品午夜性色福利 | 依依成人影院在线观看 | 亚洲欧美综合在线天堂 | 欧美一级在线 | 亚洲精品自偷自拍 | 国产呦系列(771vip观看) | 免费人成黄页网站在线观看 | 国产在线91 | 国产卡戴珊在线根本喂不饱2 | 欧美午夜在线 | 亚洲中文字 | 在线观看精品国产福利片app | 国产草莓社区在线观看 | 欧美人与动生 | 亚洲午夜福利在线视频 | 韩国三级私人教练 | 69精产国品 | 日本免费一区二区三区在线视频 | 99爱精品视频 | 国产亚洲欧洲aⅴ综合一区 ady中文字幕 | 国产日韩欧美一区 | 92国产精品午夜福利免费 | 天天综合7799精品影视 | 亚洲精品男女视频在线 | 999zyz玖玖资源站永久 | 一区二区無碼在線觀看 | 91视频导航| 亚洲人成色777777精品 | 日韩欧美天堂 | 国产精品视频国产永久视频 | 综合自拍 | 91人成亚洲高清在线观看 | 三级特黄60分钟在线观看 | 一二三四在线观看免费视频 | 丝袜国产精品视频二区 | 人人鲁人人莫人人爱精品 | 秋霞国产午夜伦午夜福利片 | 制服丝袜在线手机国产 | 国产欧美一区二区三区综合野 | 国产人在线成免费 | 国产午夜福 | 免费国产黄频在线观看视频 | 夫妻之间免费观看完整版 | 黑人巨大videos极度另类 | 午夜高清 | 91影视日韩欧美在线观看 | 亚洲国产精品尤物yw在线观看 | 日产无人区一线二 | 吃大瓜吃瓜| 91看片婬黄大片91挑色 | 午夜免费福利在 | 国产欧美日韩综合视频专区 | 日本高清视频免 | 国产精品香蕉夜间视频免费播放 | 午夜性爽一区二区三区 | 亚洲日韩高清在线亚洲专区 | 一区二区三欧美 | 精品va在线观看 | 亚洲色国产观看在线另类 | www亚洲欲色成 | 亚洲日本道1区2区3区不卡 | 欧洲多尺码3538| 在线观看国产福利91啪 | 两口子交换真实刺激 | 精品人伦一区二区三区蜜 | 国产精品欧美一区二区三区 | 午夜福利电影在线观看 | 亚洲中文字幕第一页在线 | 国产免费人成在线看视频 | 2025国产精品国产精华 | 国产精品日本一区二区不卡视频 | 日本91 | 精品福利一区二区三区免费视 | 亚洲综合电影小说图片区 | 99这里只有精品 | 国产乱码高清区二区三区在线 | 日本爽p大片免费观看 | 国产精品免费大片 | 亚洲精品亚洲人 | 亚洲综合一区三区 | 国产日韩欧美在线精品综合网 | 亚洲精品国产精品国自产网站 | 国产精品女主播主要上线 | 亚洲人成在线播放网站 | 欧美日韩国产yw在线 | 国产精品激情综合 | 两性色午夜免费视频 | 日韩电影大片手机在线观看 | 日韩欧美一区二区三区四区 | 精品国产自在在线在线观看 | 国产在线一区二区三区四区 | 欧美日韩在线精品一区二区三区 | 国产日产欧产精品精品app | 国产又黄又猛又粗又爽的 | 日韩欧美精品综合一区二区三 | 国产交换精品一区二区 | 欧美性受xxxx黑人xyx | 国产亚洲一区激情小说 | 好吊妞国产欧美日韩免费观看 | 欧美综合在线激情专区 | 成人精品视频一区二区三区 | 国产精品午夜看片 | 国产亚洲日韩网暴欧美台湾 | 91精品国产亚一区二区三区 | 青春娱乐国产分类精品二 | 最近中文字幕免费高清mv视频6 | 国产在线短视频 | 一区二区三区国产 | 91精品国产自产老师啪 | 91精品在线国产 | 欧美一区亚洲二区 | 区二区欧| 香蕉97超级碰 | 一色屋精品视频在线观看 | 从后面进入嗯啊视频 | 国产又色 | 国产亚洲日韩网暴欧美台湾 | 日本中文字幕二区三区 | 骚小妹影院| 国产一区二区精品久电影 | 亚洲免费人成 | 亚洲一区二区三区四区在线 | 99在线精品视频在线观看 | 日韩在线观看91精品免费 | 婷婷亚洲久悠 | 国产在线观看免费 | 国产一级淫片a免费播放口 海量热播电视剧手机电影在线观看 | 亚洲婷婷综合网 | 国产欧美亚洲精品综合在线 | 国产免费人成在线看视频 | 9cao在线精品免费 | 中文字幕午夜福利片午夜福利片 | 欧美日韩在线观看区一二 | 中文字幕日韩 | 欧美日韩一区日本成人一区二区 | 肉色超薄丝袜脚交 | 天堂mv在线免费看 | 在线观看三 | 三年片在线观看免费 | 另类亚洲小说图片综合区 | 亚洲日韩中文在线精品第一 | 日韩欧美国产高清 | 国产精品福利在线72国 | 国产丝袜 | 精品国产一 | 国产高清不卡一区二区 | 国产免费一级高清淫日本片 | 亚洲精品无播放器在线播放 | 天天综合日韩7799 | 日韩r级电影在线观看 | 国产一区二区三区精品专区 | 一区二区三区高清视频在线观看 | 国产精品亚洲a∨天堂 | 中文字幕亚洲欧美色 | 国产一级特黄大片特爽 | 免费一级欧美片在线观看欧美 | 亚洲欧美福利一区二区 | 欧美大片va欧美在线播放 | 网址视频在线成人亚洲 | 亚洲中文字幕精品有码在线 | 精精国产xxxx视频在线 | 亚洲欧美性生活视频 | 在线在线播放 | 香蕉在线精品视频 | 精品91自产拍在线观看一区 | 欧美视频在线第一页 | 亚洲色熟女图激情另类图区 | 最近更新中文字幕2025视频 | 国产精品一二三区日韩免费 | 高清影视电视剧在线观看 | 亚洲码专区亚洲码专区 | 涩色亚洲激情第二页 | 一级电影免费 | 玖玖综合九九在线看 | 日本精品大乳一区 | 精品女同一区二区三区 | 亚洲动漫精品在线 | 国产亚洲精aa在线观看不卡 | 国产一级a毛一级a看免费视频 | 中文字幕乱码免费不 | 国产精品国产一区二区三区 | 婷婷亚洲久悠 | 尤物精品视频一区二区三区 | 自拍偷拍欧美图片 | 亚洲性色精品一区二区在线 | 欧美综合图区亚洲综自拍 | 日本中文字幕网址 | 好看的电视 | 国产欧美亚洲一级a在线观看 | 国产精品va一级二级三级 | 中文字幕精品一二三四五六七八 | 噼里啪啦 | 亚洲一区二区三区不卡在线播放 | 国产日韩簧片在线观看 | 日本一区二区不卡中文字幕 | 日本中文一二区有码在线 | 亚洲精品国产精品乱码不卡√ | 91久热| 精品亚洲一区二区三区在线观看 | 亚洲精品国产精品国自产网站 | 中国凸偷窥xxxx自由视频 | 亚洲欧美日韩激情在线观 | 国产精品日韩精品在线播放 | 热99这里| 国产精品亚洲网红主播 | 欧美性狂猛xxxxxbbbbb | 日韩欧美色激情 | 精品视频二区 | 国产日韩中文字幕 | 老牛影视文化传媒有限公司官方 | 高清在线?视频大全 | 亚洲码在线观看 | 亚洲第一区欧美国产不卡综合 | 2025中文字幕无 | 日日夜人人澡人人澡人人看免 | 91秒拍国产福利 | 国产精品电影在线观看 | 日本高清www色视 | 另类欧美日韩精品一区二区在线 | 亚洲中字第 | 香蕉伊蕉伊中文视频在线 | 91成人精品爽啪在 | 丝袜美腿精品 | 欧美影院| 天天插一插| 中文字幕影院 | 一级特黄aa大片欧美 | 伊人网视频在线观看 | 韩国三级hd中文字幕电影天堂 | 最新电影电视剧短剧在线观看 | 国产精品网站不卡在线观看 | 亚洲欧美国产制服另类 | 国产精品天干天干综合网 | 激情五月婷婷丁香六月 | 国产欧美日 | 精品成人一区二区三区电影 | 日韩中文字幕亚洲精品 | 国产精品天天天天影视 | 亚洲日本中文字幕乱码在线电影 | 男人j放进女人p全黄在线 | 男女性爽| 国产又刺激又黄又爽又湿 | 日韩伦理电影中文在线 | 精品国产第一页 | 看一级特黄a大一片电影 | 国产日韩欧美在线观看一区二区 | 国产丝袜视频一区二区三区 | 精品国偷自产在线视频 | a级全黄试看30分钟gif动图 | 欧美日韩欧美一区 | 国产日产成人免费视频 | 日本天堂天v在线播放 | 设看到很多欧美日韩一区二区综 | 成人亚洲欧美丁香在线观看 | 国产又粗又猛又黄又爽视频 | 亚洲三级一区二区在线观看 | 一区二区三区视频在线播放 | 日韩四区在 | 国产精品免费视频一区二区三区 | 欧亚一级毛 | 黑人巨大精品欧美一区二区免费 | 制服丝袜亚洲中文综合 | 乱中年女人伦一 | 青柠影院免费观看电视剧高清 | 欧产日产国产精品精品mp4 | 亚洲国产精品日韩专区a∨ 欧美国产日韩a视频在线不卡 | а√天堂地址在线网 | 日产学生妹在线观看 | 国产中文字幕视频在线播放 | 欧美性猛交xxxx黑人喷水 | 日本高清xxxx视频 | 欧美日韩成人一区二区三区 | 国产精品免费高清在线观看 | 最新好看的电影 | 国产精品日韩在线观看一区二区 | 精品一4区| 天天天天躁天天爱天天碰2025 | 在线观看片免费人成视 | 成年人免费在线看的惊悚动作片 | 首播电影网 | 国产精品久线在线观看 | 欧美一区二区三区精品国产 | 国产亚洲人成网线在线播放va | 91影视网| 欧美人与动牲 | 欧美一区二区成人精品视频 | 露脸对白不带套在线播放 | 日韩欧美亚洲三区视频 | 国产一区二区三区乱码 | 欧美日韩不卡高清在线看 | 亚洲国产亚洲片在线观看播放 | 欧美v国产v亚洲v日韩九九 | 国产特级婬片免费看 | 成人免费xxx在线观看 | 全黄性性激高免费视频 | 国产精品日韩欧美一区二区三 | 国产国产乱片在线播放 | 69午夜成年免费视频 | 国产精品美女一区二区三区 | 亚洲成a人片在线观看一级 精品国产自 | 国产人免费视频成69 | 中文无字幕一 | 亚洲精品国产精品制服丝袜 | 国产色系视频免费在线观看 | 国产精品自产拍在线 | 亚洲日本一区二区在线观看 | 国产人妖ts重口系列网站观看 | 国产一区国产二 | 三级网站在线免费观看 | 欧美国产日韩在线播放成人 | 午夜影院在线看 | 国产在线一卡2卡三卡4卡免费 | 看全色黄大色黄大片女爽一黄 | 男女xxⅹ爽免费视频 | 里啪啦影院大全 | 最近中文字幕无吗高清免费视频 | 星空天美麻花视频大全 | 九九热线精品视频在线观看 | 红杏视频打开页 | 午夜成人理论福利片 | 国产高清视频在线观 | 国产台湾佬国产娱乐 | 国产精品精品国产一区二区 | 国产一区二区三区美女图片 | 亚州成人高清国产a | 亚洲精品影视亚州色区 | 国产精品视频系列专区 | 亚洲自拍中文另类 | 免费看国产 | 亚洲色偷精品一区二区三区 | 欧美精品国产日韩综合在线 | 亚洲国产日韩一级精品视频网站 | www.五月婷婷.com | 欧美亚洲色自拍 | 国产精品一区二区久 | 电影频道 | 欧美伦费免费全部午夜最新 | 青青青国产在线观看 | 日本中文字幕在线观看 | 亚洲视频精品 | 欧洲成人免费高清视频 | 日韩欧美国产奇米影视在线观看 | 国产在线精品福利大全 | 午夜免费福利不 | 欧美日韩中文字幕免费看 | 国产产精品亚洲一区二区在线观看 | 99热这里只有精 | 亚洲天堂网一区二区三区四区 | 日韩精品一区二区三区在线观看 | 区三区日韩精品 | 亚洲天堂欧美 | 日本视频一区二区三区 | 亚洲码欧美码一区二区三区 | 欧美日韩国产在线一区 | 国产欧美日韩精 | 五月天激情视频a级在线版 无吗一区二区三区 | 轻点灬大ji巴大粗长了视频 | 洋妞国产全集在线观看 | 国产人成77777视频网站 | 区二区三区观看 | 97精品视频在线观看 | 国产中文字幕亚洲 | 午夜视频免费观看 | 午夜理论片yy44880影院 | 日韩欧美在线国产一区二区 | 三年片免费观看大全 | 欧美综合国产日本 | 国产一区二区三区免费大片天美 | 精品国产品国语在线不卡 | 国产人成综合精品亚洲 | 免费观看亚洲 | 国产丝袜视频在 | 亚洲日韩欧美国产高清αv 亚洲欧美 | 最近伦中文字 | 国产高清在线不卡 | 两个人看的视频在线观看 | 精品国产一区二区三区不卡 | 国产涩涩视频在线观看 | 精品免费看一区二区三区 | 国产精品无 | 亚洲综合色区中文字幕 | 国产亚洲天堂 | 欧美a欧美乱码一 | 亚洲一区国产 | 欧美一区二区另类在线播放 | 日本综合欧美一区二区三区 | 视频一区二区三区在线看 | 国产在线观看第二页 | 91国偷自产中文字幕婷婷 | 老妇喷水一区二 | 国精产品一区一区三区mba下载 | 老师裸露胸免 | 国产精品多p对白交换绿帽 国产日本韩国视频 | 欧美亚洲高清国产一区二区三区 | 亚洲专区日韩专区在线观看 | 黑人欧美老 | 99re在线这 | 91精品专区国产在线观看高清 | 亚洲最大国产成 | 日本一区二区三区免费播放视频站 | 国产香蕉国产精品偷在线观看 | 中文日产无乱码v在线观 | 国产一区二区三区欧美 | 国产午夜亚洲精品不卡福利 | 免费观看亚洲人成网站 | 真人二十三式性视频(动) | 国产一级a毛一级a视频 | 国产美女视频国产视视频 | 日韩在线精品一区二区三区 | 国产福利在线观看 | 国产精品成人aaaa网站女吊丝 | 免费观看网站 | 亚洲+欧洲+日本+国产 | 日韩四级片在线看 | 国产精品国产午夜免费看福利 | 女同另类国产精品视频 | 国产精品猎奇系列在线观看 | 91高清国 | 亚洲中文字幕精品一区二区三区 | 精品三级视频在线观看 | 国产激情视频在线观看 | 免费最新电视剧 | 丁香花在线观看免费观看图片 | 国精产品一区二区三区有限 | 亚洲精品中文字幕码专区 | 国语自产免费精品视频在 | 亚洲2025国| 中文字幕乱老妇 | 国产在线成本人视频摸腿 | 国产福利在线观看免费第一福利 | 日本三级理论一区二区三区 | 制服丝袜亚洲中文综合 | 999精品色在线播放 猫咪免费 | 国产萌白酱喷水在线播放尤物 | 欧美日韩中文字幕在线 | 国产aⅴ一 | 手机看电影的网站 | 国产精品成人自拍在线观看 | 欧美又大粗又爽又黄大片视频 | 亚洲一区二区在线播放 | 国产在线精品观看一区 | 日本加勒比在线 | 99精品欧美| 宅男噜噜噜一区二 | 国产v综合v亚洲欧美大另类 | 三三影院 | yy6080午夜理论成人影院 | 亚洲人成在线不卡网 | 日韩在线精品一区二区三区 | 日韩一区二区三区免费精品 | 国产日本一线在线观看免费 | 最近2025中文字 | 最新热门日韩电影 | 欧美精品日韩精品一卡 | 真实的国产乱xxxx在线 | 亚洲人成网站在线 | 亚洲最大的情人在线 | 国产欧美日本在 | 国产极品美女一区二区三区 | 国产高清在线精品一区小说 | 成人永久免费高清 | 只有精品 | 国产真实强奷网站在线播放 | 国产亚洲综合一区柠檬导航 | 快速安装不 | 中文字幕在线视频观看网站 | 亚洲国产欧美精 | 亚精产品 | 国产香蕉视 | 人人影视网 | 亚洲精品一区二区 | 2025免费国产a | 麻花豆传媒mv在线观 | 欧美激情片区一区二区三区 | 久操视频免费 | 999国产| 中文字幕v人 | 欧美搡bb| 99xxxx日本 | 97影院午夜午夜伦不卡 | 欧洲自拍拍偷综合 | 97天堂nba永久 | 欧美精品视频在线观看 | 欧美亚洲中日韩中文字幕在线 | 亚洲精品国产福利片 | 国产在线乱码 | 高清影视在线播放 | 日韩精品在线视频一区二区三区 | 日韩精品电影亚洲一区 | 日韩中文字幕无砖 | 国产v视频在线亚洲视频 | 国产精选91原创视频 | 午夜视频体内 | 国产一级婬片视 | 国内精品日本和韩国免费不卡 | 91普通话国产对白在线 | h片在线播放免费 | 91美女艹比| 欧美日韩一区日本成人一区二区 | 欧美aa视频 | 亚洲日本国产一区二区精品成人 | 亚洲一线产区二线产区精华 | 精品成人一区二区三区免费视频 | 香蕉成人伊视频在线观看 | 亚洲一区二区三区在线 | 亚洲一级淫片免费在线观看 | 精品国产yw在线观看 | 欧美在钱一 | 国产精品成久 | 在线日韩国产 | 国产亚洲sss在线播放 | 欧美日韩国产亚洲综合不卡 | 国产精品自产拍在线观看中文 | 在线观看精品亚洲 | 国产在线精品一区二区不卡 | 亚洲精品一区二区三区四区高清 | 国产小视频福利在线观看高清完整 | 亚洲韩国 | 未满十八勿入网站 | 亚洲国产精品成人天堂 | 国产欧美亚洲精品a | 欧美精品v欧洲精品 | 午夜亭亭| 日本特黄特色aaa大片免费 | 97超级碰碰碰碰精品 | 国产欧洲精品自在自线官方 | 182tvc午夜福利在线观看污 | 永久在线免费观看美女热比网站 | 97在线精品国自产拍中文 | 亚洲人成色4444在线观看 | 人与禽性视频77777 | 国产老熟女精品视 | 国产午夜手 | 欧美日韩国产激情电影 | 成人性欧美 | 色与欲影视天天影视 | 欧美色涩在线第一页 | 国产一级淫片a免费播放口欧美 | 亚洲香蕉国产高清在线播放 | 男人操女人视频 | 国产亚洲高清不卡在线观看 | 午夜日b视频 | 99精品欧美一区二 | 欧美日韩国产中文字幕在线 | 成视人a| 国产在线日韩欧美 | 免费日漫在线 | 日韩电影 | 在线观看国产亚洲自拍 | 国产又粗又硬又长又爽 | 国产亚洲精品午夜福利 | 亚洲精品自有码中文字 | 亚洲精品福利电影在线观看 | 国语自产精品视频在线看 | 国产性色 | 欧美激情刺激爽爽影院 | 老女人牲| aa级亚洲电影| 精选亚洲一区二区三区 | 日产中文字幕在线精品一区 | 日韩一品二品三品 | 欧美日韩色另类综合 | 国产亚洲精品精品精品 | 国产在线观看一区二区三区 | 亚洲人成欧美中文字幕 | 国产网红刘婷在线视频 | 亚洲人在线观看影院 | 午夜影院 | 欧洲乱码伦网站 | 国产国产人免费人成免费视频 | 亚洲视频免费在线播放 | 一区二区日韩视频九一蜜桃 | 99精品视频在线观看婷婷 | 亚洲欧美日韩精品永久 | 可以免费观看的电影网 | 三级经典国产精品 | a在线看 | 成l人在线观看线路1 | 欧美专区亚洲专区 | 欧美日韩亚洲二区在线 | 国产在线精品一区二区高清不卡 | 日本高清视频不卡 | 成人69激情视频在线观看 | aaaaa级少| 全集在线观看 | 国产日韩精品 | 国产精品成熟老女人 | 亚洲欧美日韩国产精选在线观看 | 成人国产精品一区二区八戒网 | 青青国产在线播放 | 国产亚洲日韩欧美在线成 | 善良的岳hd中字伦理 | 欧美日韩一区二区在线 | 国产一级特黄aaa大片在 | 国产综合有码 | 青青青国产爽爽视频免费观看 | 欧美在线一区二区三区欧美 | 日韩综合亚洲色在线影院 | 91精品视频在线看 | 五月综合激情婷婷六月色窝 | 亚洲成a人 | 风流老熟女一区二区三区l 国产亚洲精品国产福利 | 国产女主播精 | 亚洲国产欧美在线一区二区 | 亚洲人成网77777色在线播放 | 国产欧美在线综合一区 | 国产精品成人aaaa网站女吊丝 | 日产中文字乱码卡一卡二卡 | 免费观看亚洲人成网站 | 在线免费视频 | 五月天婷婷激情 | 亚洲国产综合精品一区 | 三区免费视频 | 国产一区二区三区四区免费观看 | 欧美日韩国产一区 | 国产精品一区韩国电影日本 | 老妇喷水一区二 | 一本大道东 | 国产亚洲日韩欧美在线成 | 亚洲精品乱码一区二区 | 国产婷婷| 欧美午夜成年片在线观看 | 欧美a级v片在线观看 | 国产一区二区免费视频 | 国产制服丝袜你 | 丝袜视频国产手机在线 | 日韩精品一区二区三区高清 | 性日韩视频在线观看 | 亚洲国产精品视频免费观看 | 日本电影中文字 | 91精选国产大片 | 全网热播最新电影电视剧 | 免费一看一级 | 97精产国品一二三产区 | 综合另类 | 97se亚洲国产综合自在线观看 | 国产天堂网在线视频 | 久精品在线观看 | 亚洲a∨ | 国产成a人片在线观看视频下载 | 青青青国产观91 | 少女哔哩 | 最近日本免费观看mv免费版 | 国产又黄又大又粗又硬又猛樱花 | 91精品一区国产高清在线 | 91啪国自产最新91啪国自产 | 日韩一级一欧美一 | 日本一区二区三区免费播放视频站 | 欧美精品一区二区三区免费 | 亚洲成?v人片在线观看福利 | 在线观看永久免费视频网站 | 日韩中文字幕34页视频 | 日韩成人一区二区三区在线观看 | 国产欧美一二三区男女交配 | 欧美日韩精品中文字幕 | 秋霞国产午夜 | 国产精品va在线观看蜜臀 | 日韩综合精品一区二区 | 国产99视频精品免费看 | 国产午夜理论不卡在线观看 | 日本三级日产三级国 | 天美传媒果冻传媒国产电影 | 免费高清手机在线观看 | 国产午夜福利院在 | 最新一区二区三区免费看 | 伊人色综合一区二区三区 | 国产日b视频在线观看 | 国产亚洲精品成人a在线 | 国产精品欧美精品aⅴ在线 精品欧美在 | 亚洲激精日韩激精欧美潮精品 | 四区免费视频 | 欧美日韩一区日本成人一区二区 | 国产女人喷潮在线观看视频一 | 91精品啪在线观看国产色 | 国产国语一级在线播放视频 | 亚洲中文字幕一区二区三区 | 亚洲一区欧美一区国产 | 日本在线视频一区二区三区 | 亚洲精品成人区在线观看 | 视频在线观看一区 | 国产亚洲日韩网欧美在线播放 | 最近中文字幕mv | 囯产精品一品二区三区 | 日本高清中文字幕高清在线 | 国产乱码精品一区三上 | 欧美日韩国产高清一区二区三区 | 自拍偷在线精品自拍偷免费 | 亚洲一区二区福利在线观看 | 日韩在线欧美高清一区 | 757国产午夜福利在线播放 | 日韩在线免费 | 亚洲欧美在线观看品 | 国产日本欧美亚洲精品视 | 天下第一社区在线观看视频 | 最近中文字幕免费完整视频1 | 国产aⅴ片 | 最近中文字幕完整版免费视 | 中文字幕一区 | 另类国产亚洲日韩 | 日本一区不卡在线观看 | 亚洲日本国产乱码va在线观看 | 成人动视频国产欧美精品 | 亚洲综合一区二区 | 制服国产日韩欧美另类 | 字幕无乱码 | 97公开视频| 亚洲视频在线观 | 国产精品55夜色66夜色 | 中文字幕亚洲一区二区va在线 | 免费国产一级a | 免费国产乱理伦片在线观看 | 日韩国产一区二区三区在线 | 国产精品免费视频色拍拍 | 精品国产亚洲三 | 欧美特黄特刺激a一级淫片 日本中文字幕在线播放 | 91精品国产一区二区三区左线 | 中文字幕在线二区 | 亚洲精品男女视频在线 | 国产全黄三级三级 | 亚洲国产天堂久 | 天下第一日本在线观看视频 | 欧美三级韩国三 | 国产精品hd在线播放 | 国产va精品免费在线观看 | 99re16热视频精品 | 国产亚洲日韩在线播放不卡 | 亚洲一区二区三区不卡在线播放 | 国产91精品一区二区 | 两性色午夜视频免费网 | 人人玩人人添人人澡免费 | 亚洲国产精品综合 | 国产精品亲子乱子伦 | 精品日韩成人欧美 | 最近高清中文在线字幕在线观看 | 婷婷四房综合激情五月在线 | 国产精品一区欧美日韩制服 | 亚洲国产欧美在线一区二区 | 制服丝袜亚洲中文综合 | 人在线观看 | 天下第一社区在线观看视频 | 国产精品福利在线播放 | 91成人影院在线观看 | 玩弄老太婆的屁股眼 | 字幕一区二区三区四区 | 国产又色又爽又刺激在线观看 | 欧美特黄aaaaa | 最新国产精 | 中文字幕亚洲一区二区三区四 | 成人国产综合三级 | 2025中文字字募 | 国产精品精品国产一区二区 | 大地资源中文在线观看官网第二页 | 免费一区二区三区视频 | 蜜臀精品一区二区三区在线观看 | 亚洲熟女精品中文字幕 | 99re热视频这里只有综合亚洲 | 国产又粗又硬又长又爽 | 亚洲一级特黄大片在线播放 | 日本免费在线看aⅴ | 欧美国产精品不卡在线观看 | 国产精品一区二区日韩91 | 中文字幕在线观看一区二区 | 青草久操| 青青草中文字幕在线观看 | 玩肥熟老妇bbwxxx视频 | 手机看片福利 | 五月天久 | 好吊色永久免费视频在线观看 | 日韩精品一区二区三区在线视频放 | 强被迫伦姧在线观 | 亚洲大片在线观看网址 | 99九九免费热在线精品 | 亚洲高清一区二区三区不卡 | 欧美成一级 | 都市激情第一页 | 国产色产综合色产在线观看视频 | 亚洲欧美日韩一区二区在线观看 | a在线免费观看 | 亚洲和欧洲一码二码区别在 | 亚洲精品一级高清在线播放国 | 亚洲精品国产美女在线观看 | 亚洲卡一| 日本免费亚洲视频 | 性生生活12分钟免费 | 国产精品电影在线 | 亚洲熟女乱综合一区 | 欧美日韩一区二区不卡在线播放 |