.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
david stephan
Gaurav Pal
Post New Web Links

Using ASP.NET 3.5's ListView and DataPager Controls: Displaying Data with the ListView

Posted By: Rahul     Posted Date: November 14, 2009    Points: 2   Category :ASP.Net
Prior to ASP.NET 3.5, developers who needed to display a set of records could choose between the GridView, DataList, and Repeater controls. The GridView provides rich data features, but has a very boxy layout; the DataList and Repeater allow for a more flexible layout, but lack the "point and click" data features found in the GridView, DetailsView, and FormView controls. The ListView bridges the gap between layout flexibility and built-in data features.

This article, the first in a series of articles on the ListView and DataPager controls, looks at the ListView's many available templates and illustrates how to display data. Read on to learn more!

View Complete Post

More Related Resource Links

ListView DataPager with SQL-Statements that already return only paged data.



As far as I understand the ListView-Control and the DataPager-Control, they work like this: The ListView gets its datarows from its data source, then the DataPager causes the ListView to display only a subset of those rows.

So what, when I want to use custom databinding for the ListView, that *already* gets the certain subset from SQL-Server (for better performance). Can I and how can I use the DataPager then?

Thanx, S.

Manually coding controls such as gridview, listview, repeater, etc.


using vs2010 and .net 4

In my project I have a separate DAL built from class files that I'd like to use to store my code for CRUD operations against my database.

I'm having a hard time finding examples of how to code server controls like the gridview, listview, repeater etc., for CRUD operations manually, i.e., without a datasource control of some flavor.

I don't have any problem manually coding the referenced controls to get my data, but I do have problems when it comes to coding them to perform CRUD operations unless I use a datasource control. When I use the datasource controls CRUD operations seem to automagically appear out of nowhere after they're configured.

Can someone point me to some samples somewhere? Have I missed a section at MSDN?


Display a nested child ListView on PostBack while using DataPager on parent ListView


Hello ASP.NET community,

I am having trouble finding how to solve the following issue :

I am using nested listviews to display Sales and Sales details.

The main ListView displays General Information about Sales and the child ListView displays the detailed information about one sale. the child listview is shown only when the user clicks on a link (see included code, DataBind is made on PageLoad) :

ASPX Markup Code :

<asp:listview id="lvSales" runat="server" onitemdatabound="lvSales_ItemDataBound">
<table cellspacing="0" border="1" width="250" style="border-collapse:collapse;">
<tr runat="server" id="headerRow">
<th scope="col" style="width:30px;"></th>
<th scope="col">SaleNumber</th>
<tr id="itemPlaceHolder" runat="server" enableviewstate="true"/>
<tr id="row" runat="server">
<td style="text-align:center;"><asp:button id="btnShowHideDetails" runat="server" oncommand=&qu

ListView get data on SelectedIndexChanging

Hi,I have a ListView  with aOnSelectedIndexChanging="ProductsListView_SelectedIndexChanging" and a button action<asp:LinkButton ID="SelectButton" runat="server" Text="SELECT" CommandName="Select" />This works great if i want to get the value on item in the ListView with code behind:   Sub ProductsListView_SelectedIndexChanging(ByVal sender As Object, ByVal e As ListViewSelectEventArgs)         Dim item As ListViewItem = CType(ProductsListView.Items(e.NewSelectedIndex), ListViewItem)        Dim myLabel As Label = CType(item.FindControl("NameLabel"), Label)        Label1.Text = myLabel.Text End SubHowever, I would like to get a value thats not on a control. So I tried this:  Sub ProductsListView_SelectedIndexChanging(ByVal sender As Object, ByVal e As ListViewSelectEventArgs)        Dim dataItem As ListViewDataItem = CType(ProductsListView.Items(e.NewSelectedIndex), ListViewDataItem)      &nb

Help Getting ListView To Display Data

I have years of Java experience but am new to .NET development.  I am currently working with C# and Microsoft Visual C# 2008.  Everything has been going well accept for one snag.  I can't get a ListView to display anything.  I've now spent hours on it and it seems I just don't get it.  Below is a sample program of my problem.  I am constructing the ListView in the Form constructor.  It's supposed to have 2 groups with 2 items, but when I run the program, the ListView is empty.  I've played around with trying different view types, but to no avail.  I've reduced it to the bare minimum and still don't get it.  What am I missing? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace DemoFormApp { public partial class Form1 : Form { public Form1() { InitializeComponent(); ListViewGroup group1 = new ListViewGroup("Group One"); ListViewGroup group2 = new ListViewGroup("Group Two"); ListViewItem item1 = new ListViewItem("ABC"); ListViewItem item2 = new ListViewItem("CD"); group1.Items.Add(item1); group2.Items.Add(item2); listView1.Groups.Add(group1); listView1.Groups.Add(group

Listview Toggle Visibility of a Textbox based on Data Not Null.

I want to toggle a Textbox to be visible (true, false) contained within an InsertItemTemplate based on the data being Null/Empty.   It Works in the Item Template since it is calling the "select parameters", but once it is in the "insert parameters" on databinds, I am unable to get this to work.  <%# String.IsNullOrEmpty(Convert.ToString(Eval("qu_8")))?Convert.ToBoolean("false"):Convert.ToBoolean("true") %> (works in Item Templates, but not in InsertItemTemplate to toggle a textbox to be visible or not visible). I am using C# in code behind. Thanks in advance -Mark

ListView Not Displaying Any Items

Hi All,   I have a ListView that has 2 columns (Key | Value). The ListView is bound to a DataContext, and each column is bound to a property off the DataContext. Here's the code:   <UserControl.Resources> <CollectionViewSource x:Key="WorkflowViewSource" Source="{Binding Arguments}"/> </UserControl.Resources>     <ListView DataContext="{StaticResource ResourceKey=WorkflowViewSource}" ItemsSource="{Binding}"> <ListView.View> <GridView AllowsColumnReorder="True"> <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Key}"/> <GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/> </GridView> </ListView.View> </ListView>   The Arguments property is a public ObservableCollection<MyType>, and I've verified that it is indeed populated with items (11 of them in-fact). The properties are set on each item. The problem is my ListView is empty. I've switched to a ListBox as well and nothing. I've never had a problem like this before and I'm at a loss as to what could be causing it.   Let me know if you need any info.   Edit: I've verified the output window of Visual Studio and the binding to Arguments is correct. I know i

Exception caused by DataPager.SetPageProperties() on ListView (postback error)

 Hi, I have a issue with drives me crazy! I'm using the DataPager method SetPageProperties() to restore the current page in my listview after I navigated into a page related to a listview item. (I persist the current page in the session state) I display 10 items at a time, and there are 10 pages. Everything works perfectly for the first 100 items, .... but after I go beyond (to display pages 11 to 20), if I call SetPageProperties() to restore the proper "current" page, I cannot submit anymore anything without getting the following exception: An error has occurred because a control with id 'ctl00$ctl00$ContentPlaceHolder$ContentPlaceHolder1$m_ListViewSearchItems$lvProductsPager$ctl00$ctl10' could not be located or a different control is assigned to the same ID after postback. If the ID is not assigned, explicitly set the ID property of controls that raise postback events to avoid this error. The exception refers to the DataPager sub-controls which are not rendered the same way for first pages (1 - 10) than (11 - 21); Is that because it expect then a "previous page" button? I don't quite know what to think about it. Does anyone have a clue?

Data template for Icon in Header of listview on sorting

I have 2 datatemplates that show 2 icons for sorting on ascending and on descending.. <DataTemplate x:Uid="HeaderTemplateArrowDown"> <DockPanel> <TextBlock Text="{Binding}"/> <Path x:Name="arrow" StrokeThickness = "1" Fill = "gray" Data = "M 5,10 L 15,10 L 10,5 L 5,10"/> </DockPanel> </DataTemplate> <DataTemplate x:Uid="HeaderTemplateArrowUp"> <DockPanel> <TextBlock Text="{Binding }"/> <Path x:Name="arrow" StrokeThickness = "1" Fill = "gray" Data = "M 5,5 L 10,10 L 15,5 L 5,5"/> </DockPanel> </DataTemplate> So now how do i use these in my theme file . How do i use them at a time all over my project in multiple forms from my theme file. Like how do i include these datatemplates into the GridViewColumnHeader Style.

ListView with DataPager

Hi, i use a ListView with DataPager but fail when change page in the DataPager because does nothing. Producto losProductos = new BLL.Producto(); ListView1.DataSource = losProductos.TraerTodos(); //List<Producto> ListView1.DataBind();   <asp:ListView ID="ListView1" runat="server"> <LayoutTemplate> <ul class="ulproduct"> <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder> </ul> </LayoutTemplate> <ItemTemplate> <li> <table width="100%"> <tr> <td rowspan="3" class="style1"> <img class="img" src='<%# string.Format("/SirPet.com/img/productos/{0}.jpg", Eval("Codigo")) %>' alt='<%# Eval("Codigo")%>' height="90" width="60" /> </td> </tr> <tr> <td colspan="2">

Is there any other way of displaying data not using .net controls?


I don't wan to use any .net data controls, like listview, gridview etc.

I'd like to do presentation layer in .aspx, and all the logic in c#.

Should I use expression builders to do so?

ListView, DataPager, LinqDataSource: LinqDataSource Selecting event fire twice


Dear all,

In my web app, I used LinqDataSource, ListView and DataPager (.NET 3.5 sp1) to implement search feature with paging. I have a button to trigger the search.

But In the first time, the Selecting event of LinqDataSource fire twice and I don't know why (I debugged my code very carefully). I don't use QueryString with DataPager and assign PageSize of DataPager in the first time of page load to prevent the ListView bind again (as in some instructions I found in forum)

Have anyone seen this problem before? And If possible, can you give me some instructions to try?

I can't post my code because it's quite large.

Thank you very much


Developer, CSC Vietnam


WPF: how to make the listview work (apply basic listviewitem style and also apply special data


 We have defined the basic ListViewIItemStyle as following:

<!--ItemContainerStyle with the Trigger for selection x:Key="ListViewItemStyle"-->
 <Style x:Key="ListViewItemStyle"
  TargetType="{x:Type ListViewItem}">
 <Setter Property="Background"
 Value="Transparent" />
 <Setter Property="HorizontalContentAlignment"
 Value="Center" />
 <Setter Property="VerticalContentAlignment"
 Value="Center" />
 <Setter Property="Foreground"
 Value="Black" />
 <Setter Property="Margin"
 Value="5,0,5,0" />
 <Setter Property="MinHeight"
 Value="40" />
 <Setter Property="Template">
 <ControlTemplate TargetType="{x:Type ListViewItem}">
 <Border x:Name="Bd"
 <GridViewRowPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
 <!--<ContentPresenter HorizontalAlignment="Left"
  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />-->

Help with tutorial Displaying Binary Data in the Data Web Controls



I am going through the ASP.NET tutorials and my questions is how do you assign an image to a byte array. Because the example in the tutorial is getting rid of an OLE Header. My Database images, does not have an OLE Header. So how do you augment this code to work for my situation:

protected void Page_Load(object sender, EventArgs e)
 int categoryID = Convert.ToInt32(Request.QueryString["CategoryID"]);
 // Get information about the specified category 

CategoriesBLL categoryAPI = new CategoriesBLL();
Northwind.CategoriesDataTable categories = categoryAPI.GetCategoryWithBinaryDataByCategoryID(categoryID);
Northwind.CategoriesRow category = categories[0];

 // Output HTTP headers providing information about the binary data
 Response.ContentType = "image/bmp";

 // Output the binary data
 // But first we need to strip out the OLE header

 const int OleHeaderLength = 78;
 int strippedImageLength = category.Picture.Length - OleHeaderLength;
 byte[] strippedImageData = new byte[strippedImageLength]; 
Array.Copy(category.Picture, OleHeaderLength, strippedImageData, 0, strippedImageLength); Response.BinaryWrite(strippedImageData);


Listview Not Displaying any records


Today is the firstday that I stated to develop a complete application in WPF using Visual Studio 2010/Vb.Net

I am trying to show the records in the lisview from SQL database. However, I am not able to show the records in the Listview and I am not able to figure it out why this problem happening

This is my code

 Dim ConncectionString As String = "Data Source=SRV-TEST;Initial Catalog=AppEL;Integrated Security=True"

  Dim myConnection As SqlConnection

  myConnection = New SqlConnection(ConncectionString)



  Ticket", myConnection)

  Dim myDataTable As New DataTable

  Dim myAdapter As New SqlDataAdapter(myCommand)


  ListView1.DataContext = myDataTable.DefaultView

This is my XMAL for ListView

 <ListView Height="102" HorizontalAlig

DataPager Manual input From Listview Control


Hi There,

I've been trying to marry up the listview and the Data pager with my own, Database class that pulls the information from the database.

I can display the information ok no problem, fortunately this time I know what the problem is, but I cannot figure out a way around the problem.

In my Page_Load event I fill out the listview accordingly:


Dim mList As List(Of Object) = mDbase.Record.Items("SELECT TBLResults.ID, Draw, [Date], B1, B2, B3, B4, B5, B6, BB, Jackpot, Wins, Machine, BallSet FROM TBLResults, TBLMachine WHERE TBLResults.MachineID=TBLMachine.ID ORDER BY Draw", GetType(ResultItem))


     Me.ListView1.DataSource = mList





The problem lies in the postback, I need to figure out a way get the information as to what state the DataPager is in so I could update the Query accordingly.

I know there is a StartRowIndex avaialbe but this does not get updated in the Page_Load event.

Has anybody got any ideas?

ListView with DataPager problem on ASP.NET 4


I'm currently working on upgrading an existing ASP.NET 3.5 app to ASP.NET 4 and I found a rather odd behavior with a ListView and DataPager. I'm using a ListView with an ObjectDataSource and in the ListView I have a DataPager with a NumericPagerField. On my 3.5 web app the page will display the ListView properly and will display the page number links at the bottom, where the DataPager is located. If I go to the last page and delete row by row until all are gone, the ListView will automatically page to the previous page. This is all behavior out-out-the-box since I don't have any special code for paging.

When I run the same app on ASP.NET 4 the behavior changes. The ListView no longer automatically pages to the previous page and I'm left with an empty list, with no way to get back to the previous pages even though there is still data to be retrieved. I get no DataPager control at the bottom because at this point what the ListView is displaying is the EmptyDataTemplate.

The way I've been able to reproduce this is by creating two web apps as follows:

Using Visual Studio 2010 Premium (a release version, not a demo or preview)

Create an empty web application (I called mine WebApplication1) using ASP.NET 3.5 and create a new web form called WebForm1.aspx

Use the following code:

<%@ Page L
ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend