Tag Archive : gridview

Creating dynamic, fancy EmptyDataText for GridView

1
Digg me

Gridview has capability to display “default” messages when “No data” exists during binding.

Standard Way in .aspx

<asp:GridView ID=”gvControl” runat=”server” AutoGenerateColumns=”False” GridLines=”None” CellPadding=”0″ CellSpacing=”0″ OnRowDataBound=”gvCategories_RowDataBound” BackColor=”#dddddd” ShowHeader=”false” EmptyDataText=”<BR> No data exists <BR><BR>”>
….
…..
</asp:GridView>

Fancy Way (.vb or .cs)

You can make it fancy & dynamic by doing it in code behind.

Create fancy texts using WordArt (MS Word) and copy it to Image Editor (Paint.net, gimp, Paint) and save it as JPG.

[sourcecode language="vb"] 
gvControl.EmptyDataText = “”
gvControl.EmptyDataRowStyle.HorizontalAlign = HorizontalAlign.Center
gvControl.databind[/sourcecode]
Note: When you use emptydatatext in codebehind donot forget to use databind.

Gridview : Empty First Row / Asp.net 2.0

0
Digg me

If you using Gridview control and your Grid doesnt have HEADER information then make sure you turn off the “ShowHeader” property for that Gridview or else you will notice a blank line on top of the grid.  If you are

If you do viewsource you will notice this mystery line <tr><th></th</tr> as first line of grid table.

GridView Sorting/Paging w/o a DataSourceControl DataSource (VB.NET)

0
Digg me

This page is reproduced from this URL. Copied here for easy reference. All credits to the original author.
                                                                             ______________________

If you set AllowPaging=”true” or AllowSorting=”true” on a GridView control without using a DataSourceControl DataSource (i.e. SqlDataSource, ObjectDataSource), you will run into the following errors:

When changing the page on the GridView control:

The GridView ‘GridViewID’ fired event PageIndexChanging which wasn’t handled.

When clicking a column name to sort the column on the GridView control:

The GridView ‘GridViewID’ fired event Sorting which wasn’t handled.

As a result of not setting the DataSourceID property of the GridView to a DataSourceControl DataSource, you have to add event handlers for sorting and paging.
<%@ Page Language=”VB” %>
 
<%@ Import Namespace=”System.Data” %>
<%@ Import Namespace=”System.Data.OleDb” %>
 
<script runat=”server”>   
    Private Sub PopulatePublishersGridView()
        Dim connectionString As String = AccessConnectionString()
        Dim accessConnection As OleDbConnection = New OleDbConnection(connectionString)
 
        Dim sqlQuery As String = “SELECT [PubID], [Name], [Company Name], [Address], [City], [State], [Zip], [Telephone], [Fax], [Comments] FROM Publishers ORDER BY [Name] ASC;”
 
        Dim accessCommand As New OleDbCommand(sqlQuery, accessConnection)
 
        Dim publishersDataAdapter As New OleDbDataAdapter(accessCommand)
        Dim publishersDataTable As New DataTable(“Publishers”)
        publishersDataAdapter.Fill(publishersDataTable)
 
        Dim dataTableRowCount As Integer = publishersDataTable.Rows.Count
 
        If dataTableRowCount > 0 Then
            gridViewPublishers.DataSource = publishersDataTable
            gridViewPublishers.DataBind()
        End If
    End Sub
 
    Private Function AccessConnectionString() As String
        Dim accessDatabasePath As String = Server.MapPath(“~/App_Data/biblio.mdb”)
        Return String.Format(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};”, accessDatabasePath)
    End Function
 
    Private Property GridViewSortDirection() As String
        Get
            Return IIf(ViewState(“SortDirection”) = Nothing, “ASC”, ViewState(“SortDirection”))
        End Get
        Set(ByVal value As String)
            ViewState(“SortDirection”) = value
        End Set
    End Property
 
    Private Property GridViewSortExpression() As String
        Get
            Return IIf(ViewState(“SortExpression”) = Nothing, String.Empty, ViewState(“SortExpression”))
        End Get
        Set(ByVal value As String)
            ViewState(“SortExpression”) = value
        End Set
    End Property
 
    Private Function GetSortDirection() As String
        Select Case GridViewSortDirection
            Case “ASC”
                GridViewSortDirection = “DESC”
 
            Case “DESC”
                GridViewSortDirection = “ASC”
        End Select
 
        Return GridViewSortDirection
    End Function
 
    Protected Sub gridViewPublishers_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
        gridViewPublishers.DataSource = SortDataTable(CType(gridViewPublishers.DataSource,DataTable), True)  gridViewPublishers.PageIndex = e.NewPageIndex
        gridViewPublishers.DataBind()
    End Sub
 
    Protected Function SortDataTable(ByVal pdataTable As DataTable, ByVal isPageIndexChanging As Boolean) As DataView
        If Not pdataTable Is Nothing Then
            Dim pdataView As New DataView(pdataTable)
            If GridViewSortExpression <> String.Empty Then
                If isPageIndexChanging Then
                    pdataView.Sort = String.Format(“{0} {1}”, GridViewSortExpression, GridViewSortDirection)
                Else
                    pdataView.Sort = String.Format(“{0} {1}”, GridViewSortExpression, GetSortDirection())
                End If
            End If
            Return pdataView
        Else
            Return New DataView()
        End If
    End Function
 
    Protected Sub gridViewPublishers_Sorting(ByVal sender As Object, ByVal e As GridViewSortEventArgs)
        GridViewSortExpression = e.SortExpression
        Dim pageIndex As Integer = gridViewPublishers.PageIndex
        gridViewPublishers.DataSource =  SortDataTable(CType(gridViewPublishers.DataSource,DataTable), False)
        gridViewPublishers.DataBind()
        gridViewPublishers.PageIndex = pageIndex
    End Sub
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        PopulatePublishersGridView()
    End Sub
</script>
 
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head id=”Head1″ runat=”server”>
    <title>GridView Sorting/Paging without a DataSourceControl DataSource</title>
</head>
<body>
    <form id=”form” runat=”server”>
        <div>
            <asp:GridView ID=”gridViewPublishers” AllowPaging=”true” AllowSorting=”true” AutoGenerateColumns=”false”
                EmptyDataText=”No records found” PagerSettings-Mode=”NumericFirstLast” PageSize=”25″
                OnPageIndexChanging=”gridViewPublishers_PageIndexChanging” OnSorting=”gridViewPublishers_Sorting”
                runat=”server”>
                <AlternatingRowStyle BackColor=”LightGray” />
                <HeaderStyle BackColor=”Gray” Font-Bold=”true” Font-Names=”Verdana” Font-Size=”Small” />
                <PagerStyle BackColor=”DarkGray” Font-Names=”Verdana” Font-Size=”Small” />
                <RowStyle Font-Names=”Verdana” Font-Size=”Small” />
                <Columns>
                    <asp:BoundField DataField=”PubID” HeaderText=”Publisher ID” SortExpression=”PubID” />
                    <asp:BoundField DataField=”Name” HeaderText=”Name” SortExpression=”Name” />
                    <asp:BoundField DataField=”Company Name” HeaderText=”Company Name” SortExpression=”Company Name” />
                    <asp:BoundField DataField=”Address” HeaderText=”Address” SortExpression=”Address” />
                    <asp:BoundField DataField=”City” HeaderText=”City” SortExpression=”City” />
                    <asp:BoundField DataField=”State” HeaderText=”State” SortExpression=”State” />
                    <asp:BoundField DataField=”Zip” HeaderText=”Zip” SortExpression=”Zip” />
                    <asp:BoundField DataField=”Telephone” HeaderText=”Telephone” SortExpression=”Telephone” />
                    <asp:BoundField DataField=”Fax” HeaderText=”Fax” SortExpression=”Fax” />
                    <asp:BoundField DataField=”Comments” HeaderText=”Comments” SortExpression=”Comments” />
                </Columns>
            </asp:GridView>
        </div>
    </form>
</body>
</html>