ListView CodeSample - DataBind ListView to a generic List of Type
From Visual WebGui Wiki
| This article will have a few sections added to it soon, based on the following article type skeleton: NewCodeSampleTemplate |
Contents |
Overview
This codesample show how to databind a ListView to a generic List of Person type class. Two ListViews are shown, one with autopopulating of columns (or properties), and the other manually populating the ListView column declarations by referencing properties from the Person class.
VB.NET Code
Person Class
Public Class Person Private _ID As Integer Private _Name As String Private _Age As Double Public Property ID() As Integer Get Return _ID End Get Set(ByVal value As Integer) _ID = value End Set End Property Public Property Name() As String Get Return _Name End Get Set(ByVal value As String) _Name = value End Set End Property Public Property Age() As Double Get Return _Age End Get Set(ByVal value As Double) _Age = value End Set End Property Public Sub New(ByVal _id As Integer, ByVal _name As String, ByVal _age As Double) Me.Name = _name Me.Age = _age Me.ID = _id End Sub End Class
ListView Form
#Region "Using" Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Data Imports System.Drawing Imports System.Text Imports Gizmox.WebGUI.Common Imports Gizmox.WebGUI.Forms #End Region Partial Public Class ListViewAndGenericList Inherits Form Private LVAutoGen As Gizmox.WebGUI.Forms.ListView Private LVManualGen As Gizmox.WebGUI.Forms.ListView Private columnHeader1 As Gizmox.WebGUI.Forms.ColumnHeader Private columnHeader2 As Gizmox.WebGUI.Forms.ColumnHeader Private columnHeader3 As Gizmox.WebGUI.Forms.ColumnHeader Public Sub New() MyBase.New() InitializeComponent() SetupControls() RegisterEvents() End Sub Private Sub SetupControls() Me.LVAutoGen = New Gizmox.WebGUI.Forms.ListView() Me.LVManualGen = New Gizmox.WebGUI.Forms.ListView() Me.columnHeader1 = New Gizmox.WebGUI.Forms.ColumnHeader() Me.columnHeader2 = New Gizmox.WebGUI.Forms.ColumnHeader() Me.columnHeader3 = New Gizmox.WebGUI.Forms.ColumnHeader() ' ' LVAutoGen ' Me.LVAutoGen.AutoColumnGeneration = True Me.LVAutoGen.DataMember = Nothing Me.LVAutoGen.ItemsPerPage = 20 Me.LVAutoGen.Location = New System.Drawing.Point(12, 3) Me.LVAutoGen.Name = "LVAutoGen" Me.LVAutoGen.Size = New System.Drawing.Size(395, 145) Me.LVAutoGen.TabIndex = 0 ' ' LVManualGen ' Me.LVManualGen.AutoColumnGeneration = False Me.LVManualGen.Columns.AddRange(New Gizmox.WebGUI.Forms.ColumnHeader() {Me.columnHeader1, Me.columnHeader2, Me.columnHeader3}) Me.LVManualGen.DataMember = Nothing Me.LVManualGen.ItemsPerPage = 20 Me.LVManualGen.Location = New System.Drawing.Point(12, 175) Me.LVManualGen.Name = "LVManualGen" Me.LVManualGen.Size = New System.Drawing.Size(395, 165) Me.LVManualGen.TabIndex = 1 ' ' columnHeader1 ' Me.columnHeader1.Image = Nothing Me.columnHeader1.Tag = "ID" Me.columnHeader1.Text = "" Me.columnHeader1.Width = 150 ' ' columnHeader2 ' Me.columnHeader2.Image = Nothing Me.columnHeader2.Tag = "Name" Me.columnHeader2.Text = "" Me.columnHeader2.Width = 150 ' ' columnHeader3 ' Me.columnHeader3.Image = Nothing Me.columnHeader3.Tag = "Age" Me.columnHeader3.Text = "" Me.columnHeader3.Width = 150 ' ' Form1 ' Me.Controls.Add(Me.LVManualGen) Me.Controls.Add(Me.LVAutoGen) End Sub Private Sub RegisterEvents() End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load Dim lst As New List(Of Person)() lst.Add(New Person(1, "John Doe", 32)) lst.Add(New Person(2, "Scooby Doo", 33)) lst.Add(New Person(3, "Tony Soprano", 22)) Me.LVAutoGen.DataSource = lst Me.LVManualGen.DataSource = lst End Sub End Class
C# Code
Person Class
using System; using System.Collections.Generic; using System.Web; namespace Wiki_CSharp { public class Person { public int ID { get; set; } public string Name { get; set; } public double Age { get; set; } public Person(int _id, string _name, double _age) { this.Name = _name; this.Age = _age; this.ID = _id; } } }
ListView Form
#region Using using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using Gizmox.WebGUI.Common; using Gizmox.WebGUI.Forms; #endregion namespace Wiki_CSharp { public partial class ListViewAndGenericList : Form { private Gizmox.WebGUI.Forms.ListView LVAutoGen; private Gizmox.WebGUI.Forms.ListView LVManualGen; private Gizmox.WebGUI.Forms.ColumnHeader columnHeader1; private Gizmox.WebGUI.Forms.ColumnHeader columnHeader2; private Gizmox.WebGUI.Forms.ColumnHeader columnHeader3; public ListViewAndGenericList() { InitializeComponent(); SetupControls(); RegisterEvents(); } private void SetupControls() { this.LVAutoGen = new Gizmox.WebGUI.Forms.ListView(); this.LVManualGen = new Gizmox.WebGUI.Forms.ListView(); this.columnHeader1 = new Gizmox.WebGUI.Forms.ColumnHeader(); this.columnHeader2 = new Gizmox.WebGUI.Forms.ColumnHeader(); this.columnHeader3 = new Gizmox.WebGUI.Forms.ColumnHeader(); // // LVAutoGen // this.LVAutoGen.AutoColumnGeneration = true; this.LVAutoGen.DataMember = null; this.LVAutoGen.ItemsPerPage = 20; this.LVAutoGen.Location = new System.Drawing.Point(12, 3); this.LVAutoGen.Name = "LVAutoGen"; this.LVAutoGen.Size = new System.Drawing.Size(395, 145); this.LVAutoGen.TabIndex = 0; // // LVManualGen // this.LVManualGen.AutoColumnGeneration = false; this.LVManualGen.Columns.AddRange(new Gizmox.WebGUI.Forms.ColumnHeader[] { this.columnHeader1, this.columnHeader2, this.columnHeader3}); this.LVManualGen.DataMember = null; this.LVManualGen.ItemsPerPage = 20; this.LVManualGen.Location = new System.Drawing.Point(12, 175); this.LVManualGen.Name = "LVManualGen"; this.LVManualGen.Size = new System.Drawing.Size(395, 165); this.LVManualGen.TabIndex = 1; // // columnHeader1 // this.columnHeader1.Image = null; this.columnHeader1.Tag = "ID"; this.columnHeader1.Text = ""; this.columnHeader1.Width = 150; // // columnHeader2 // this.columnHeader2.Image = null; this.columnHeader2.Tag = "Name"; this.columnHeader2.Text = ""; this.columnHeader2.Width = 150; // // columnHeader3 // this.columnHeader3.Image = null; this.columnHeader3.Tag = "Age"; this.columnHeader3.Text = ""; this.columnHeader3.Width = 150; // // Form1 // this.Controls.Add(this.LVManualGen); this.Controls.Add(this.LVAutoGen); } private void RegisterEvents() { this.Load += new System.EventHandler(this.Form1_Load); } private void Form1_Load(object sender, EventArgs e) { List<Person> lst = new List<Person>(); lst.Add(new Person(1, "John Doe", 32)); lst.Add(new Person(2, "Scooby Doo", 33)); lst.Add(new Person(3, "Tony Soprano", 22)); this.LVAutoGen.DataSource = lst; this.LVManualGen.DataSource = lst; } } }
