Introduction:
Here I will explain how to display or show gridview header and footer when the gridview is empty in asp.net using c#, vb.net with example or show gridview header and footer when there is no data or empty in asp.net using c#, vb.net with example. By using gridview properties ShowHeaderWhenEmpty, EmptyDataText we can show gridview header even when data is empty but to show footer we need to write custom code by adding new to gridview in asp.net.
Description:
In previous articles I explained populate dropdownlist selected value in gridview in asp.net, group columns in gridview, gridview examples in asp.net, cascading dropdownlist in gridview using asp.net, change gridview header dynamically in asp.net, Delete multiple rows in gridview using checkbox in asp.net and many articles relating to gridview, asp.net, c#,vb.net and jQuery. Now I will explain how to display or show gridview header and footer when the gridview is empty in asp.net using c#, vb.net.
In previous articles I explained populate dropdownlist selected value in gridview in asp.net, group columns in gridview, gridview examples in asp.net, cascading dropdownlist in gridview using asp.net, change gridview header dynamically in asp.net, Delete multiple rows in gridview using checkbox in asp.net and many articles relating to gridview, asp.net, c#,vb.net and jQuery. Now I will explain how to display or show gridview header and footer when the gridview is empty in asp.net using c#, vb.net.
By using gridview properties ShowHeaderWhenEmpty, EmptyDataText
we
can show gridview header even when data is empty but if we want to show footer also means we need to write custom code. Before
implement this example first design one table productinfo in your database as
shown below
Column Name
|
Data Type
|
Allow Nulls
|
productid
|
Int(IDENTITY=TRUE)
|
Yes
|
productname
|
varchar(50)
|
Yes
|
price
|
varchar(50)
|
Yes
|
Once
table created in database enter some dummy data to test application now open
your aspx page and write the code like as shown below
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1"
runat="server">
<title>Show Gridview Header
and Footer When Gridview Empty in Asp.net</title>
<style type="text/css">
.GridviewDiv {font-size: 100%; font-family: 'Lucida
Grande', 'Lucida Sans Unicode', Verdana, Arial, Helevetica, sans-serif;
color: #303933;}
.headerstyle
{
color:#FFFFFF;border-right-color:#abb079;border-bottom-color:#abb079;background-color:
#df5015;padding:0.5em 0.5em 0.5em 0.5em;text-align:center;
}
</style>
</head>
<body>
<form id="form1"
runat="server">
<div class="GridviewDiv">
<asp:GridView ID="gvDetails"
runat="server"
AutoGenerateColumns="false"
ShowFooter="true"
ShowHeaderWhenEmpty="true"
EmptyDataText="No
Records Found">
<HeaderStyle CssClass="headerstyle"
/>
<Columns>
<asp:TemplateField HeaderText="Product
Id">
<ItemTemplate>
<asp:Label ID="lblId" runat="server" Text='<%#Eval("productid")
%>'/>
</ItemTemplate>
<FooterTemplate>
Footer1
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Product
Name">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%#Eval("productname")
%>'/>
</ItemTemplate>
<FooterTemplate>
Footer2
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Price">
<ItemTemplate>
<asp:Label ID="lblPrice" runat="server" Text='<%#Eval("price") %>'/>
</ItemTemplate>
<FooterTemplate>
Footer2
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
|
After completion of aspx page add following namespaces in
codebehind
C#
Code
using System;
using
System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
|
After completion of adding namespaces you need to write the
code like as shown below
protected void Page_Load(object
sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridview();
}
}
protected void BindGridview()
{
DataSet ds = new DataSet();
using (SqlConnection con = new
SqlConnection("Data
Source=Suresh;Integrated Security=true;Initial Catalog=MySampleDB"))
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from productinfo where productid=0",
con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
con.Close();
if (ds.Tables[0].Rows.Count == 0)
{
ds.Tables[0].Rows.Add(ds.Tables[0].NewRow());
gvDetails.DataSource = ds;
gvDetails.DataBind();
int columncount =
gvDetails.Rows[0].Cells.Count;
gvDetails.Rows[0].Cells.Clear();
gvDetails.Rows[0].Cells.Add(new TableCell());
gvDetails.Rows[0].Cells[0].ColumnSpan = columncount;
gvDetails.Rows[0].Cells[0].Text = "No
Records Found";
}
else
{
gvDetails.DataSource = ds;
gvDetails.DataBind();
}
}
}
|
VB.NET
Code
Imports
System.Web.UI.WebControls
Imports System.Data
Imports System.Data.SqlClient
Partial Class VBCode
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal
sender As Object,
ByVal e As EventArgs) Handles
Me.Load
If Not
IsPostBack Then
BindGridview()
End If
End Sub
Protected Sub BindGridview()
Dim ds As New DataSet()
Using con As New SqlConnection("Data
Source=Suresh;Integrated Security=true;Initial Catalog=MySampleDB")
con.Open()
Dim cmd As New SqlCommand("select
* from productinfo where productid=0", con)
Dim da As New SqlDataAdapter(cmd)
da.Fill(ds)
con.Close()
If ds.Tables(0).Rows.Count = 0 Then
ds.Tables(0).Rows.Add(ds.Tables(0).NewRow())
gvDetails.DataSource = ds
gvDetails.DataBind()
Dim columncount As Integer =
gvDetails.Rows(0).Cells.Count
gvDetails.Rows(0).Cells.Clear()
gvDetails.Rows(0).Cells.Add(New TableCell())
gvDetails.Rows(0).Cells(0).ColumnSpan = columncount
gvDetails.Rows(0).Cells(0).Text = "No
Records Found"
Else
gvDetails.DataSource = ds
gvDetails.DataBind()
End If
End Using
End Sub
End Class
|
Demo
If you enjoyed this post, please support the blog below. It's FREE! Get the latest Asp.net, C#.net, VB.NET, jQuery, Plugins & Code Snippets for FREE by subscribing to our Facebook, Twitter, RSS feed, or by email. |
|||
|
|||
2 comments :
Thanks
simple and its working properly
it works, but when a postback happen it will delete that "no records found"
Note: Only a member of this blog may post a comment.