超碰91资源站-超碰97豆花-超碰97人妻-超碰97人人干-超碰97人人香蕉-超碰97天天操-超碰97在线资源站-超碰97资源站共享-超碰97资源站总站-超碰aa在线91-超碰av操-超碰爱爱

半岛外围网上直营

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

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

概述:本文主要介紹如何使用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@ke049m.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.5 [銷售以商家最新版為準,如需其他版本,請來電咨詢]
  • 開 發 商: DevExpress 正式授權
  • ">DevExpress Universal Subscription

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

    title
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    利記足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網上PM娛樂城盤口(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規雷火競技官方買球(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權威十大網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 權威188BET足球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規188BET足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 国产精品无码制服丝袜网站 | 国产精品成人影院久久久 | 国产午夜片无码区在线观看爱情 | 国产高清不卡一区二区三区 | 国产高清路线一路线二2025 | 国精产品一品二品国精破解 | 国产成人高清精品免费53密 | 国产成人在线一 | 精品韩国亚洲av无码不卡区 | 岛国精品一区免费视频 | 国产高潮流白浆喷水免费观看 | av春色在线| 高清无码在线观 | 国产呦交精品免费视频 | 国产精品毛片在线完整版的 | 国产福利一区二区三区在线视频 | 岛国大片网站在线观看 | 国产午夜精品理论片久久影院 | 国产91精品高跟丝袜在线 | 97人妻久久人人 | 国产高清精品一区二区三区 | 国产美女白丝袜精品 | 国产精品探花一区 | 91精品第一国产综合精品 | 国产传媒亚洲综合一区二区 | 国产午夜精品久久久久婷婷 | 国产亚洲漂亮白嫩美女在线 | 国产在线拍揄自揄视精品不卡 | 国产一区二区三四区在线观看 | 国产专区亚洲欧美另类在线91 | 国产日韩免费一区二区三区 | 精品一区二区三区不卡久久久 | 国产黑丝精品在线 | 国产1024香蕉在线观看 | 国产尤物福利在线不卡 | 波多野结衣中文字幕一区二区三区 | 成人午夜精品久久久久久久秋霞 | 国产高潮流白浆喷水免费视频 | 69视频福利一区二区三区 | 成人在线观看影院 | 国产极品乱码在线观看www | 成人无码国产电影 | 国产av无码片毛片一级流奶水 | 国产精品美女久久久久久麻 | 99亚洲中文字幕精品一区二区 | 国产亚洲欧美在线观看四区 | av无码精品久久久久精品免费 | 国产成人免费av在线播放 | 国产精品人妻一码二码 | 精品无码a免费观看 | 国产精品一区久久人爽 | 91福利一区入口 | 国产精品一线二线三线品牌 | 国产每日精品亚洲精品 | 国产精品一级毛片在线观看 | 国产人妻人伦又粗又大爽歪歪 | 精品国产一区二区三区制服 | 福利精品国产一区 | 国产无码一区二区三区在线观看 | 国产成人啪精品视频免费软件 | 精品无码一区在线观看 | 国产精品办公室沙发 | 成人国产精品一级毛片视频毛片 | 国产美女裸体网站 | 2025夜夜乳狠狠乳狠狠爱 | 国产一级毛片视频国产 | 2025国产精品视频网站 | 国产a级乱码片 | 高清无码小 | 国内精品久久人妻系列 | 国精产品砖一区二区三区糖心 | 国产精品一区在线观看你懂的 | 极品少妇伦理一区二区 | 丰满人妻被中出中文字幕 | 国产成人毛片视频x8 | 国产高清一区二区在线免费观看 | 国产午夜精品在人线播放 | 精品无码一区二区三区土豆 | 2025国产精品视频一区 | av亚洲精品毛片av | 精品国产精品国自产观看 | av午夜福利不 | 爆乳熟妇一区二区三区影院挤奶 | 国产成人av综合色 | 国产精品国产三级国产αv 国产精品国产三级国产成人 | 国产av天堂亚洲国产av麻豆 | 国产精品毛片一区二区三区在 | 国产精品无码无卡在线观看 | 国产午夜无码精 | 91福利国产在线在线播放 | 精品国产亚一区二区三区不卡 | 国产成人av在线播 | 国产无套视频在线观看aa在线 | 国产内射在线激情 | av网站在线观看 | 国产精品毛片在线大全 | 韩国激情三小时三级合集 | 国产一区二区三区韩国女主播 | 国产一区二区三区精品在线观看 | 国产亚洲综合另类一区二区 | 国产人妖一区二区在线观看 | 精品视频免费观看 | 91久久老司机福利精品网 | 91亚洲综合最大 | 福利一区二区三区视 | 国内一国产农村妇女一级毛片 | 观看一区二区 | 91制片国产自产在线观看 | 国产激情一区 | 国产人妻精品一区二区三区不卡 | 国产精品特级毛片一区二区三区 | 国产高清免费在线观看精品 | 爆乳美女娇喘视频在线观看 | 国产在线播精品第三 | 国产成人精品免费视频大全麻豆 | 丰满女人又爽又紧又丰满 | av在线中文字幕不卡电 | 国产成人亚洲精品无码v大片 | 国产不卡av网页 | 成人国产一区二区三区 | 国产一区二区三区乱码在线观看 | a人片a级毛片在线观看 | 国产成人精品综合在线 | 高清无码在线不卡 | 2025年国内精品视频 | 国产精品免费久久久久久久蜜桃 | 国产一级av毛片国语对白 | 精品无人区乱码在线观看 | 国产精品剧情 | 国产成人亚洲精品无码影院bt | 丰满的少妇中出 | 精品小说一区二区三区在线 | 国精品无码一区二区三 | 国产白丝jk被疯狂输出视频 | 国产一区中文字 | 成人午夜精品久久久久久久 | 国产精品无码一区二区在线 | 国产精品伦人一久二久三久 | 成人欧美在线观看 | 成人精品视频一区二区三区 | 韩国精品一区二区三区在线观看 | 国产av无码专区 | 91亚洲自偷手机在线观看 | 国产白嫩漂亮美女 | 国产中文字幕久青草免费在线看 | a级毛片高清免费 | a级毛片无码兔费真人久久 a级毛片无码兔费真人久久91 | 精品国产一区二区三区不卡 | 国外免费人妖网视频在线观看 | 91久久久无码国产精品免费 | 国产精品久久久久一区二区三区 | 99精品久久毛片a片潘金莲 | 成人精品无码专区 | 国产精品亚洲999久久久 | 国产成人无码区免费内射一片色 | 成人毛片在线观看观看 | 成人免费又黄又爽视频 | 韩国三级伦在线观看久 | 国产精品入口麻豆免费看 | 国产精品亚韩精品无码在线 | 国产无码精品视频 | 国产原创无码 | 国产狂喷潮在线观看 | 国产高清精品福利私拍国产 | 国产精品va尤物在线观看 | 精品爆乳一区二区三区无码av | 国产精品无码av片在线观看播放 | a级毛片免费看久久久 | 91精品无码国产在线观看 | 精品人妻中文字幕 | 国产高清在线精品一区二区三区 | 国产在线中文字幕 | 9191精品国产日本欧美 | 国产一区二区三区无码免费 | 精品无码久久久久国产一区二区 | 国产成人精品午夜在线观看 | 国产精品一区二区在线俏佳人 | 成人午夜福利电影 | 国产99精品一区二区三区免费 | 国产亚洲日韩网欧美在线播放 | 国产成人毛片无码视频软件 | 超碰精品无码一区二区 | 国产裸体美女永久免费无遮挡 | 国产人妖乱国产精品人妖 | 国产精品视频一区二区三区w | 国模无码一区二区 | 91精品国产无码在线观看 | 国产aⅴ精品一区二 | 国产精品国产三级 | 国产成人免费无码视频在线 | 国产主播一区二区三区在线观 | 91精品国产免費人成网站 | 国产成人精品a视频一区 | 国精无码欧精品 | 国精品无码一区二区三区 | 国产精品v欧美精品v日本精品动漫 | 99精品久久精品一区二区 | 国产成人综合欧美精品久久 | 91天堂一区二区三区在线 | 国产午夜精品一区不卡av | 国产高清在线精品一区二区 | 国产精品日韩变态另类 | 国产成年无码aⅴ片在线观看 | 潮喷大喷水系列无码久久精品 | 国产做a爱一级毛片久久 | 国产精品宾馆精品酒店 | 国产一级毛片特级国产片 | 国产精品黄在线观看免费软件 | 国产一区二区三区精品观看 | 国产精品无码不卡系列在线 | 国产成人久久av免费看澳门 | 国产成人av无码精品天堂 | 成年夜99九九久久夜观欧美 | 国产精品一区久久久久久 | 2025年国产中文字无 | 国产毛片久久久精品 | 91久久精一区| 成人夜色视频网站在线观看 | 成人精品一区二区三区免费视频 | 国产一级毛片潘金莲的奶头 | 午夜精品久久av蜜桃 | 国产精品无码一区二区在线观动 | 国产免费人成视频在线播放播 | 国产成人精品高清在线观看93 | 国产成人激烈叫床声视频对白 | 国产福利区一区二 | 国产成人精品三级在 | 国产对白91色拍 | 国产白丝jk制服在线视频 | 国产无码一区二区三区动态 | 国产激情视频一区二区三区 | 国产一区二区三区精品美女 | 精品国产丝袜高跟鞋子 | 91国内揄拍国内精品情侣对白 | 国产成年无码aⅴ片在线韩国 | 精品丰满爆乳熟妇av免费播 | 国产色又爽视频免费播放 | 成人无码潮喷在线观看 | 国产精品亚洲精品观看不卡 | 成年女人毛片免费 | 国产成人综合日韩精品无 | 国产呦精品一区二区三区网站 | av夜夜欢一区二区三区 | 69堂精品视频在线观看免费 | 国产毛片久久久久久国产毛片 | 91黄色在线观看网站 | 国产无码专区在线播放视频 | 国产高潮抽搐翻白眼在线播放 | 国产亚洲综合区成人国产系列 | 91无码人妻aⅴ一区二区三区 | 国产免费无码露脸视频 | 国产尤物在线观看无码不卡 | 爆乳一区二区无码 | 精品无码日韩一区二区三区 | 18禁止免费观看试看免费大片 | 多人混交群体交乱 | 国产精品白浆在线播放 | 国产精品国产三级国产αv 国产精品国产三级国产成人 | 激情一区二区三区成人 | 国产精品国产高清国产专区 | 丰满人妻被黑人中出849 | 国产欧美久久久久久精品一区二区 | 精品香蕉一区二区三区浪潮 | 3d动漫精品啪啪一区二区免 | 精品国产人成亚洲区 | 国产精品九九免费视频 | 国产一区国产二区在线精品 | 国产精品午夜无码 | 2025亚洲中文字幕久久精品 | 国产精品毛片一区二区三区 | 国产日韩午夜三级无码专区直播 | 国产交换精品一区二区三区 | 国产精品一一在线观看 | 国产精品毛片久久久久久久av | 国产一区二区久久无码精品 | 国产精品毛片a∨一区二区三 | 国产黄片免费观看 | 国产一区二区二区按摩精品啪视 | 精品少妇无码av无码专区 | 国产美女视频国产视视频 | 91高清视频| 国产人妻久久精品二区三区特黄 | 极品少妇一区二区三区四区视频 | 91精品人妻一区二区蜜桃 | 国产高清不卡一区二区三区 | 动漫精品一区二区无码 | 丰满人妻熟妇乱又精品视频 | 国产经典av三| 精品无码免费专区 | 国产精品免费大片一区二区 | 国产精久久一区二区三区 | 国产无码综合一区二区 | 国产偷倩视频 | 91久久久无码国产精品免费 | 丰满多毛少妇做爰视频爽爽和 | 国产成人亚洲精品91专区高清 | 国产麻豆精品福利在线 | 97无码精品人妻一区二区老司机 | 国产高清一国产av麻豆网 | 加勒比无码一区二区三区 | 国产麻豆一精品一av一免费 | 91福利视频网站 | 国产精品无码一级免费看a级毛激情 | 精品国产三上悠亚在线观看 | 成人精品丝袜在线一区 | av无码久久久久不卡网站毛片 | 国产一区二区三区不卡视频在线 | 国产91精品一区二区麻豆网站 | 波多野结衣中文字幕一区 | 国产丝袜肉丝视频在线 | ts清晰版在线观看 | 超级香蕉97视频在线观看一区 | aⅴ无码播放一级毛片免费 aⅴ无码午夜在线 | 3d动漫精品啪啪一区二区中文 | 国av在线无码精品 | 国产精品大片在线看 | 精品亚洲一区二区在线播 | 国产一区在线观看无码中文 | av小黄片在线免费播放 | 国产主播福利精品中文 | 国产91精选在线观看麻豆 | 国产激情一区二区三区在线观看 | 国产成人无码v片在线观看 国产成人无码v在线播放不卡 | 91精品国产91久久久久久 | 国产护士囗交吞精视频 | 精品无码久久久久国产动漫3d | 国产91精品白浆无码流出久久 | 国产一区二区三区久久精品 | 国产精品丝袜久久 | av毛片uhd | 国产99精品一区二区三区免费 | 高潮流白浆潮喷在线观看 | 精品人妻少妇嫩草av无码专区 | 国产熟妇另类久久久久 | 国产精品爆乳奶水无码视频免費 | 国产精品观看无码不卡视频 | 精品少妇熟女一区二区 | 成人黄色在线观看一区 | 国产系列丝袜熟女精品网站 | 精品国产一区二区三区久久久狼 | 2025精品国产自在现线 | 成人国产精品秘久久久 | 国产精品成人v?在线观看 | 精品国色天香新区卡一卡二 | av无码人妻精品 | 国产成人三级在线播放 | 91九色精品国产免费 | 丰满的岳乱一区二区 | 国产精品免费福利久久 | 国产无码精品在线 | 国产无码一区二去三区 | 国产三级黄片一区二区三区 | 国内精品久久人妻系列 | 韩国国产精品一区二区三区 | 国产精品无码一区二区三区 | 国产av无码乱码国产精品 | 国产亚洲日韩一区二区三区在线观 | 国产无码传媒在线观 | 国产福利第一视频在线播放 | 国产不卡视频一区 | 91人妻国产麻豆88 | 91精品国产综合久久婷婷香蕉 | a级日本乱理伦片免费入口 a级日本乱理伦片免费入口: | 变态另类在线 | 国产在线高清精品1314 | 国产欧美一级大片 | 国产欧美va欧美va香蕉在线观 | 国产呦精品一区二区三区网站 | 成人精品国产一区二区三区 | 国产精品秘一区二区三区高潮 | 成人精品中国区免费 | 国产精品午夜一级毛片 | 91久久精品国产91 | 国产精品亚洲欧美动漫 | 99精品国产福久 | 国产精品国内 | 91麻豆精 | 国产亚洲综合专区在线播放 | av中文在线播放 | 2025日本三级理论影院 | 国产高清成人av片 | 97人妻免费在线视频中文 | 国产精品精品久久久久久一 | 精品亚洲一区二区三 | 国产美女精品一区二区三区 | 国产午夜精品一区二区三区老 | 国产精彩视频一区二区三区 | 国产精品一品二区三区四区五区 | 国产高清无码不卡顿在线观看 | 国产原创中文无码精品视频 | 韩国午夜三级电影 | 国产成人午夜精品 | 国产av一级片毛片网站 | 国产人妻久久精品一区二 | 国产精品亚洲专区无码web | 国产成人99久久亚洲综合精品 | 精品久久无码久97影院 | av男人的天堂在线观看国产 | 国产911视频在线 | 18禁黄无码免费网站高潮 | 国产成人无码v在线播放不卡 | 国产一区三区二区中文在线 | 91不卡精品国产乱码 | 18禁成年无码免费网站深添 | 91情侣在线精品国产 | 91麻豆精品国产自产 | 国产精品云霸高清中字 | 国内精品视频一区二区三区 | 国产www尤物精品在线观看 | 成人午夜福利免费无码视频 | 国产一区二区三区不卡在线看 | 国产高清在线精品一区二区三区 | 高清欧美日韩一区二区三区在线 | 国码无码久久99 | 国产精品乱码在线观看av | 国产麻豆放荡av剧情演绎 | 2025韩国三级午夜理论 | 国产精品高清另类一区二区三区 | 国产成年无码久久久久毛片 | 国产精品丝袜美女久久 | 91成人免费观看在线观看 | 国产专区一线二线三线品牌 | 国产成年女人特黄特色毛片免 | 成人午夜福利视频后入 | 91国偷自产一区二区三区换脸 | 国产白丝jk被疯狂输出视频 | 经典无码在线免费看 | 91精品国产麻豆国产自产在线 | 国产精品亚洲一区在线播放 | 国产精品夜夜春夜夜爽久久小说 | 成年午夜一级毛 | 精品无码三级在线观看视频 | 18禁无码国内精品久久综合 | 国产精品亚洲二区第一页 | 成人一区二区三区视频 | 国产一区精品在线 | 国产日韩精品高潮一区二区 | 国产亚洲日韩激情视濒 | 国产三级精品三级 | 国产毛片毛多水多 | 国产偷啪视频一区 | 国产日韩另类视频一区爱 | aⅴ另类 | 国产精品一区二区av | 国产三级国产精品国产普男人 | 国产午夜无码福利在线看网站 | 国产高清在线精品一本大道 | 国产99re视频在 | 国产一区二区三区视频 | 99国产精品白浆在线观看 | av中文字幕在线亚洲 | 国产精品乱码在线观看av | av黑人手机版天堂网 | 国产精品黑色丝袜 | 国产产在线精品亚洲aavv | 国产午夜男女爽爽爽爽爽视频 | 91嫩草免费国产永久入口 | 国产午夜亚洲精品 | 国产另类欧美激情 | 国产裸拍裸体视频 | 国产在线视精品在亚洲 | 国产成人无码精品午夜福利a | 国产亚洲日韩欧美在线 | 2025国产亚洲精品无码专区 | 国产剧情av麻豆香蕉精品 | 国产99精品成人午夜在线 | 国产区精品视频 | 国产酒店制服丝袜在线 | 91国自产精品 | 国产欧美日韩在线中文一区 | 99国产精品一区无码 | 91看片淫黄| av片在线观看无码免费 | 精品国产国产自在线观看 | 国产精品十八禁一区二区三区 | 韩国欧美国产经典日本久久 | 国自产拍偷拍精品啪啪一区二 | 国产精品麻豆久久99 | 99久久国产综合精 | 国产午夜在线观看 | 精品久久无码专区国产精品发布 | 国自产拍在线天天更新2025 | 东京热久久精品 | 精品福利一区二区在线 | 韩国三级大全久久网站中文字幕 | 国产午夜精品亚洲精品国产 | 精品三级久久久久电影下载 | 国产一区二区三区在线观看免费 | 成人dvd碟片 | 成人国产一区二区三区久久久 | 精品久久久无码人妻中文字幕 | 高清无码第一区亚洲欧洲国 | 高清日韩国产无码一区二区 | 国产无码动漫一区二区三区 | 国产午夜亚洲精品三区 | 精品国模一区二 | 国产一卡2卡3卡4卡网站免费 | 国产成人精品曰本亚洲 | 国产不卡精品视频男人的天堂 | 国产成人永久免费视频网站 | 国产无套护士在线观看 | 99久久国产综合麻豆 | 国产在线高清伦片a | 国产在线精品成人 | 91精品国产综合久久四虎久久 | 2025中文字幕日韩乱码欧美 | 国产成人精品三上悠亚 | 91河南老熟 | 国产成人小午夜视频在线观看 | 国产观看精品一区二区三区 | 高潮视频一区在线观看 | 国产成人片aⅴ在线观看 | 国产成人免费高清激情明星 | 精品无码人妻 | 国产精品宾馆精品酒店 | 国产成人综合亚洲亚洲欧美 | 囯产三级无码不卡在线观看 | 国产69精品久久久久久妇女 | a级一级黄色片 | 91一区二区三区久久国产乱 | 18禁无遮挡啪啪摇乳动态图 | 国产美女被艹在线 | 精品久久久久久中文字幕一区 | 国产无码网页在线观看 | 国产黄片软件在线观看 | 国产精品亚洲一区二区 | 国产精品一区波多野结衣 | 韩国精品亚洲五月天高清 | 精品人妻大屁股白浆无码久久 | 国产高清无码在线互动交流 | 精品亚州毛片在线免费观看 | 国产精品午夜寂寞视频 | 国产三级在线观看完整版 | 国产一区二区三区亚洲精选 | www.一区二区三区在线 | 91人妻无码精品一区二区毛片 | 国产一区二区三区av天堂 | 99精品一区无码在线观看 | 福利视频一区二区三区四区五区 | 91视频网站 | 精品国产一区二区在线 | av在线播放一级二级三级 | 国产欧美精品午夜在线播放 | 国产精品一区久久一区 | 91制服丝袜在线 | 国产成人精品午夜福利在线观看 | 韩日午夜在线资源一区二区 | 国产成人av在线影院无毒 | 国产午夜免费一区二区三区 | 丰满的岳乱一区二区 | 99精品无人区乱码在线观看 | 国产精品福利一级视频 | 国产丝袜手机在线视频 | 东京无码熟妇人妻av | 国产精品自拍偷无码乱码av | 99精品久久这里只有精品 | 国产日韩av无码专区aaa | 国产99国产精偷 | 国产极品熟女沙发内射av | 国产精品亚洲专区无码老司国 | 国产精品国产三级国产av | 9191中文字幕免费 | 海角国精产品一 | av无码专区亚洲av波多野结衣 | 91精品国产高久久久成人 | 91丝袜高潮流白浆潮喷在线观看 | 国产v亚洲v天堂无码果冻传媒 | 国产在线麻豆精品 | 国产亚洲精品久久久久无码 | 精品偷拍无码不卡av | 国产午夜成人无码免费 | 国产痴汉系列 | 国产亚洲欧美在线播 | 国产精品无码一区二区三区免费 | 国产成人综合一区精品 | 国产精品无码翘臀在线观看 | 国产成人3d精品a视频 | 激情内射亚洲一区二区三区 | 国产午夜福利在线看 | 国产午夜高清高清在线观看 | 国产精品无码一区二区在线观看 | 国产精品操干在线观看 | 99精品国产福利一区二区 | 国产成人精品一区二区免费 | 国产经典自拍 | 91丝袜国产欧美 | 大尺度做爰床戏呻吟的视频网 | 韩国巨大情趣aⅴ | 国产成人无码一区二区三区在线 | av毛片久久久久午夜福利hd | 国产福利91精品一区二区三区 | 精品无码日韩一区二 | 动漫精品视频一区二区三区 | 国产系列在线精品 | 国产三级午夜视频在线观看 | 国产无码黄色网站在线观看 | 国产美女一级a作爱在线观看 | 福利视频欧美一区二区三区 | 3d动漫精品啪啪一区 | av网站在线嫩草影院 | 国产在线高潮流白浆免费观看 | 国产精品日本一区二区在线播 | 国产欧美日韩午夜在线观看 | 国产成人啪一区二区 | 果冻传媒2025精品一区 | 91人妻一区二区三区久久 | 国产一区二区啪啪啪免费视频 | 91精品久久久久五月天精品 | 国产三级在线播放第一页 | 国产激情一区二区三区成人 | 国产午夜不卡精品午夜电影 | 国产成人精品日本亚洲 | av在线高清一区 | 91尤物在线一区二区三区 | 国产成人精品久久久久 | 99精品久久久久 | 国产精品日韩欧美亚洲另类 | 国产自产拍精品视频免 | 国产三级aⅴ在线播放 | 国产做国产爱免费视频 | 18禁很色很爽很黄的免费网站 | 高潮插的我好爽再干噢在线欢看 | 国产免费无码av片在线观看不 | 国产成人咱精品视频免费网站 | 精品日韩一区精品日韩国产 | 国产精品一区二区在线观看欲臀 | 福利一区二区久久 | 精品久久无码人妻影院 | av中文字幕专区 | 国产美女精品一区二区三区 | 国产av大陆精品一区二区三区 | 成人一区二区三区 | 国产女同精品一区二区三区 | 成人精品福利 | 99久久人妻无码精品系列蜜桃 | 91av视频在线 | 国产一区二区免费伦理鲁丝片 | 国产97人人超 | 岛国一区二区三区在线观看免费 | 国产亚洲欧美日韩精品一区二区 | 国模和精品嫩模私拍视频 | 91高清无码大片 | 国产成人一区二区三区动漫 | 国产成人青青热久免费精品 | 国产高清无码性爱 | 国产尤物在线观看无码不卡 | 1024国产精品一区在线观看 | 国产精品免费看久久久无码 | 精品国产成人一区二区 | 国产av无码不卡 | 国产精品免费一级在线观看 | 国产尤物一区二 | 2025日本高清中文字幕在线 | 激情性无码视频在线观 | 精品无码+护士 | 高潮真紧好爽我视频 | 国产精品视频一区二区三区不 | 国产精品白丝久久av情趣网站 | 国产一在线精品一区在线观看 | 91久久婷婷国产综合青草 | a级毛片无码免费久久 | 国产一区二区三区精品综合 | 二区三区在 | 国产精品大屁股白桨一区二区 | 国产1卡2卡三卡四卡久久网站 | 国产激情一区二区三区不卡 | av丝袜人妻另类手机版 | a级国产欧美激情在线 | 精品国产亚洲老地址 | 成人国产精品视频 | 精品少妇人妻av免费久久 | 成人午夜电影在线播放网 | 国产av无码专区亚洲aⅴ蜜芽 | 2025国产精品自在拍在线播放 | 91久久久久国产一区二区 | 国产一区二区三区激情四射 | 动漫av永久无码精品每日更新 | 国产成人午夜无码电影在线观看 | 2025国自产拍精品网站 | 国产在线一区视频 | 国产精品一区二区宅男宅女 | 寡妇高潮一级毛片91免费看`日 | 国产极品粉嫩福利姬萌白酱 | 国产午夜精品理论片 | 二区三区av无码蜜桃 | 91嫩草免费国产永久入口 | 精品国产亚洲人成在线观看芒果 | 黑人巨大精品欧美一区二区 | 丰满人妻一区二区三区性色 | 国产稀缺精品盗摄盗拍 | 91久久国产自产拍夜夜嗨 | 国产女人喷液 | 国产精品午夜福利免费 | 国产午夜精品美女视频 | 国产美女做a免费视频软件 国产美日韩精品久久 | 精品国产一区二区三区高清观看 | 国产精品无需 | 国产精品高清一区二区不卡片 | 国精品无码一区二区三 | 国产一区二区三区久久精品小说 | 成年女人毛片免费观看中文 | 91亚洲精品麻豆 | 国产精品一区免费视频播放 | 黄色一区二区三区在线观看 | 国产午夜精品久久浪潮 | 国产精品盗摄一区二区三区 | 成人无码精品1区2区3区免费看 | 爆乳jk美女脱内衣裸体网站 | 国产美女一级做受在线观看 | 国产美女极度色诱视频 | 91精品一区二区在线观看 | 精品人妻无码久久久一区二区 | 国产精品无码日韩欧 | 97色伦图片97综合影院 | av视频在线观看 | 国产成人片一区二区三区白 | 69国产成人综合久久精品 | 国产午夜毛片黄色 | 国产精品亚洲专区无码不卡 | 国产av一区二区三区久久 | 国产欧美v欧美v在观看 | 国产综合成人色产 | 国产狂喷潮视频免费观看 | 国产精品国色综合 | 91精品综合在线偷观看视频 | 成人综合伊人五月婷久久 | 精品无码一区二区三区电影婷婷 | 爆乳高潮喷水无码正在播放 | 国产精品v日韩精品v欧美精品v | 91精品无码人妻在线 | 国产三片理论电影在线 | 成人午夜无码影院视频在线观看 | 国产成人v大片在线观 | 国内精品视频一区国产 | 国产激情二区三区 | 91精品国产肉丝高跟在线观 | 国产3p露脸福利在线视频 | 国产成人高清在线播放 | 国产成人精品一区二区免费视频 | 高潮欧美日本 | 高清少妇综合亚洲 | 国产极品粉嫩福利姬萌白酱 | 国内真实愉拍系列在线 | 国产成版人视频app 国产成本人免费视频 | 东京热久久综合久久 | 国产精品一一在线观看 | 国产精品白浆无码流出免费看 | 国产高清免费av片在线观看不卡 | 18成禁人看免费无遮挡动态图 | 国产精品一级无码视频播放 | 国产丝袜在线精品丝袜不卡 | 国产激情视频趣趣在线 | 99国产精品蜜桃 | 成年女人毛片免费观看97 | 变态另类重口特级 | 国产精品无码精品久久久 | 丰满人妻被公侵犯日本 | 91桃色午夜福利国产在线观看 | av天堂午夜精品一区二区三区 | 国产精品亚洲日韩aⅴ在线 国产精品亚洲日韩aⅴ在线观看 | 国产在线观看一区 | 2025夜夜乳狠狠乳狠狠爱 | 国产精品白浆无码浪潮av | 国产情趣免费视频在线观看 | 2025国产麻豆剧果冻传媒免 | 国产精品成人精品久久久 | 国产巨大爆乳在线观看 | 国产精品亚洲第一区二区三区 | 91麻豆精品国产自产在线观看 | 91精品国产午 | 国内自产少妇自拍区免费 | 91av在线播放| 国产二区三区中文字幕 | 国产v欧美ⅴ日韩v | 国产专区免费av无码 | 国产在线精品福利91啪 | 成人区人妻精 | 国产白丝无码免费视频 | av无码爆乳护士在 | 成人a级毛片无码免费 | 国产成人综合久久精品直播 | 精品无码一区二区三区电影婷婷 | 国产欧美久久精品不戴乳罩 | 精品国产aⅴ一区天美传媒 精品国产av | 国产欧美日韩一区二区三区视频 | 国产亚洲午夜影视在线观看 | 国内熟妇人妻色在线视频 | 18禁白丝喷水视频www | 成人国产日本亚洲精品 | 91在线无码精品秘入口九 | 91精品国产在热久久下载 | 国产精品中文字幕字幕在线 | 成人午夜视频在线观 | 精品日韩色国产在线观看 | 东京热无码中文字幕av专区 | 国产精品一区二区三区免费视频 | 精品美内射 | 国产片婬乱一级毛片调 | 国产成人免费高潮激情视频 |