ListView CodeSample - DataBind ListView to a generic List of Type

From Visual WebGui Wiki

Jump to: navigation, search


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;
        }
 
    }
}

Personal tools