Empty Grid View with Header & Footer


Empty Grid View with Header & Footer

ASPX code Sample

    runat="server" DataSourceID="sqldsCustomers" 
ShowHeader="true" ShowHeaderWhenEmpty="true"
EmptyDataText="No Customers were found." Width="95%"
/>


CS Code Sample
protected override int CreateChildControls(System.Collections.IEnumerable dataSource, bool dataBinding)
{
int rows = base.CreateChildControls(dataSource, dataBinding);

// no data rows created, create empty table if enabled
if (rows == 0 && (this.ShowFooterWhenEmpty || this.ShowHeaderWhenEmpty))
{
// create the table
Table table = this.CreateChildTable();

DataControlField[] fields;
if (this.AutoGenerateColumns)
{
PagedDataSource source = new PagedDataSource();
source.DataSource = dataSource;

System.Collections.ICollection autoGeneratedColumns = this.CreateColumns(source, true);
fields = new DataControlField[autoGeneratedColumns.Count];
autoGeneratedColumns.CopyTo(fields, 0);
}
else
{
fields = new DataControlField[this.Columns.Count];
this.Columns.CopyTo(fields, 0);
}

if (this.ShowHeaderWhenEmpty)
{
// create a new header row
GridViewRow headerRow = base.CreateRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal);
this.InitializeRow(headerRow, fields);

// add the header row to the table
table.Rows.Add(headerRow);
}

// create the empty row
GridViewRow emptyRow = new GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
TableCell cell = new TableCell();
cell.ColumnSpan = fields.Length;
cell.Width = Unit.Percentage(100);

// respect the precedence order if both EmptyDataTemplate
// and EmptyDataText are both supplied ...
if (this.EmptyDataTemplate != null)
{
this.EmptyDataTemplate.InstantiateIn(cell);
}
else if (!string.IsNullOrEmpty(this.EmptyDataText))
{
cell.Controls.Add(new LiteralControl(EmptyDataText));
}

emptyRow.Cells.Add(cell);
table.Rows.Add(emptyRow);

if (this.ShowFooterWhenEmpty)
{
// create footer row
GridViewRow footerRow = base.CreateRow(-1, -1, DataControlRowType.Footer, DataControlRowState.Normal);
this.InitializeRow(footerRow, fields);

// add the footer to the table
table.Rows.Add(footerRow);
}

this.Controls.Clear();
this.Controls.Add(table);
}

return rows;
}

[Category("Behavior")]
[Themeable(true)]
[Bindable(BindableSupport.No)]
public bool ShowHeaderWhenEmpty
{
get
{
if (this.ViewState["ShowHeaderWhenEmpty"] == null)
{
this.ViewState["ShowHeaderWhenEmpty"] = false;
}

return (bool)this.ViewState["ShowHeaderWhenEmpty"];
}
set
{
this.ViewState["ShowHeaderWhenEmpty"] = value;
}
}

[Category("Behavior")]
[Themeable(true)]
[Bindable(BindableSupport.No)]
public bool ShowFooterWhenEmpty
{
get
{
if (this.ViewState["ShowFooterWhenEmpty"] == null)
{
this.ViewState["ShowFooterWhenEmpty"] = false;
}

return (bool)this.ViewState["ShowFooterWhenEmpty"];
}
set
{
this.ViewState["ShowFooterWhenEmpty"] = value;
}
}


Related Articles

What is GridView control and how to bind GridView to data?

What is a GridView control in asp.net? Want to learn how to connect GridView to a database? This article will teach you more about the databound control GridView, properties and events of GridView and binding a GridView control to data.

How to add Buttons in Data GridView?

Want to add buttons to the GridView control in Asp.net? Need to execute a set of statements when the user clicks on the button in the GridView? Learn how to add controls like button to the GridView control and write C# code for user activities performed like Clicking of Buttons in the GridView.

More articles: Empty GridView header and footer GridView header and footer Gridview

Comments

Author: Manindra Kumar Upadhyay29 Apr 2010 Member Level: Gold   Points : 1

try this :http://manindra.net/post/2010/04/30/Show-Empty-Grid-View-Code-in-AspNet.aspx



  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name:
    Email: