ASP. Net ListView DataBinding Tutorial
For presenting data in list form, we have several options in Asp.Net like ListView, DataList, Repeater, GridView, DropDownList, etc.Since we have a variety of controls to choose from, the control can be selected based on specific requirements. For e.g. single column with a single selection, the DropDownList is a perfect choice.
If paging, sorting, the edit is required then GridView will be the right choice. If just need to repeat some HTML code, then Repeater will work out to be better. This article is focused on ListView.
DataBinding is quiet similar to GridView
DataBinding in ListView is almost similar to GridView. There is not much difference. There is a requirement for ItemPlaceHolder. By default the name of that place holder is itemPlaceholder. Asp.Net allows us to custom name (id) also.
Flexibility in rendering
This ListView is one of the best controls while flexibility is taken into consideration. With the concept of Item Place Holder, we can specify/ configure where the items have to be placed (rotated). In this example, I have made a two-column layout with liquid flow. The number of horizontal cells can be adjusted based on the resolution while resizing the browser.
Templates in ListView
There are a few templates that will ease the development effort using ListView. If you have worked in GridView earlier, then basic templates in ListView are similar to GridView Templates. There are a few special templates. I am highlighting the templates in the following list. These templates can be used to customize rendering.
- LayoutTemplate
- GroupTemplate
- ItemTemplate
- AlternatingItemTemplate
- EditItemTemplate
- InsertItemTemplate
- ItemSeparatorTemplate
- GroupSeparatorTemplate
- EmptyItemTemplate
- EmptyDataTemplate
- SelectedItemTemplate
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="WebApplication2.index" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ListView runat="server" ID="ListView1"> <LayoutTemplate> <div id="Div1" runat="server" style="width: 100%; border: solid 2px red"> <div id="Div2" runat="server" style="float: right; width: 73%; border: solid 2px green"> <asp:Panel runat="server" ID="itemPlaceholder"> </asp:Panel> </div> <div runat="server" id="Panel1" style="float: left; width: 25%; border: solid 2px blue"> My ListView Test </div> </div> </LayoutTemplate> <ItemTemplate> <div style="float: left; margin: 2px; width: 24%; border: solid 1px silver; height: 60px;"> <asp:Label runat="server" ID="lblName" Font-Bold="true" Text='<%# DataBinder.Eval(Container.DataItem, "ProductName")%>'> </asp:Label> <br /><asp:CheckBox runat="server" ID="chkDiscontinued" Text="Discontinued" Checked='<%# DataBinder.Eval(Container.DataItem, "Discontinued")%>' /> </div> </ItemTemplate> </asp:ListView> <asp:DataPager ID="DataPager1" runat="server" PagedControlID="ListView1" PageSize="10"> <Fields> <asp:NumericPagerField /> </Fields> </asp:DataPager> </div> </form> </body> </html>
Imports System.Data.SqlClient Imports System.Data Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Load If (Not IsPostBack) Then BindListView() End If End Sub Private Sub BindListView() ListView1.DataSource = GetData(String.Empty) ListView1.DataBind() End Sub Private ReadOnly Property ConnectionString() As String Get Return "Server=.\SQLEXPRESS;Database=NorthWind;Trusted_Connection=True" End Get End Property Private ReadOnly Property Connection() As SqlConnection Get Dim ConnectionToFetch As New SqlConnection(ConnectionString) ConnectionToFetch.Open() Return ConnectionToFetch End Get End Property Public Function GetData(ByVal Expression As String) As DataSet Dim SelectQry = "select * from Products" Dim SampleSource As New DataSet Dim SampleDataAdapter As New SqlDataAdapter(SelectQry, ConnectionString) SampleDataAdapter.Fill(SampleSource) Return SampleSource End Function Private Sub ListView1_PagePropertiesChanging(ByVal sender As Object, _ ByVal e As PagePropertiesChangingEventArgs) Handles ListView1.PagePropertiesChanging DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows, False) BindListView() End Sub
Post A Comment:
0 comments: