<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Tips &amp; Tricks</title><link>http://forums.asp.net/53.aspx</link><description>Cool code and exciting examples, provided by our members.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3448786.aspx</link><pubDate>Thu, 08 Oct 2009 23:03:55 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3448786</guid><dc:creator>ledo_moon</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3448786.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3448786</wfw:commentRss><description>&lt;p&gt;Please check this solution&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://ledomoon.blogspot.com/2009/04/show-grid-view-header-and-footer-when.html"&gt;&amp;nbsp;http://ledomoon.blogspot.com/2009/04/show-grid-view-header-and-footer-when.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3426750.aspx</link><pubDate>Sat, 26 Sep 2009 13:01:20 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3426750</guid><dc:creator>jstranger</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3426750.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3426750</wfw:commentRss><description>&lt;p&gt;I am really glad this thread is still running! For several years I have used the relatively crude approach of declaring a GridView with a FooterTemplate on each column for inserts and an EmptyDataTemplate containing identical controls for inserting when there is no starting data. Then in code behind I test if the row count is 0 and if so find each control from the&amp;nbsp;EmptyData template and if not do the same for the FooterRow. All works but very irritating.&lt;/p&gt;
&lt;p&gt;So now I am trying to build a custom GridView using the approach to override CreateChildControls broadly as set out by CISCBrain with a few slight modifications (in addition I am also autogenerating command columns but these work OK so I have removed this processing from the code below). [BTW I am not interested in any crude hack such as binding to an empty DataTable]&lt;/p&gt;
&lt;p&gt;Protected Overrides Function CreateChildControls(ByVal dataSource As System.Collections.IEnumerable, ByVal dataBinding As Boolean) As Integer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim numRows As Integer = MyBase.CreateChildControls(dataSource, dataBinding)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If numRows = 0 And (ShowHeaderWhenEmpty Or ShowFooterWhenEmpty) Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim tab As Table = Me.CreateChildTable()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim flds As DataControlField() = New DataControlField(Me.Columns.Count - 1) {}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Columns.CopyTo(flds, 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If ShowHeaderWhenEmpty Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _headerRow = MyBase.CreateRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.InitializeRow(_headerRow, flds)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tab.Rows.Add(_headerRow)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyBase.OnRowCreated(New GridViewRowEventArgs(_headerRow))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Insertable And ShowFooterWhenEmpty Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _footerRow = MyBase.CreateRow(-1, -1, DataControlRowType.Footer, DataControlRowState.Normal)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.InitializeRow(_footerRow, flds)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.ShowFooter = True&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tab.Rows.Add(_footerRow)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyBase.OnRowCreated(New GridViewRowEventArgs(_footerRow))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Controls.Clear()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Me.Controls.Add(tab)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return numRows&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;And I have the following properties:&lt;/p&gt;
&lt;p&gt;Protected _headerRow As GridViewRow = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Overloads Overrides ReadOnly Property HeaderRow() As GridViewRow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not MyBase.HeaderRow Is Nothing Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return MyBase.HeaderRow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return _headerRow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Protected _footerRow As GridViewRow = Nothing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Overloads Overrides ReadOnly Property FooterRow() As GridViewRow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not MyBase.FooterRow Is Nothing Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return MyBase.FooterRow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return _footerRow&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Get&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Property&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;All this works and I can retrieve values from the controls in the footer row whether there is starting data or not.&lt;/p&gt;
&lt;p&gt;However, the problem I have is if the footer includes databound controls such as DropDownLists. In this case, I get an error that the Bind (or Eval) can only be used i the context of a databound control. This did not happen when I was using the EmptyDataTemplate for this purpose, so&amp;nbsp;it would seem that somehow the footer row is not getting initialized properly. What do I need to do to ensure tat the footer is properly initialized and databound?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3240808.aspx</link><pubDate>Wed, 17 Jun 2009 21:04:15 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3240808</guid><dc:creator>Ptpro</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3240808.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3240808</wfw:commentRss><description>&lt;p&gt;I ran into the same problem where me.InitializeRow is giving an object reference error.&amp;nbsp; The solution has to do with dimensioning the fields() variable.&amp;nbsp; You probably had the code:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim fields(Me.Columns.Count) As DataControlField&lt;/p&gt;
&lt;p&gt;It should be&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim fields(Me.Columns.Count - 1) As DataControlField&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Many thanks to CISCBrain for posting the code.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3124309.aspx</link><pubDate>Tue, 28 Apr 2009 09:43:57 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3124309</guid><dc:creator>emendes</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3124309.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3124309</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;Check This link&lt;/p&gt;&lt;p&gt;http://geekswithblogs.net/dotNETvinz/archive/2009/03/11/tiptrick-show-header-and-footer-of-gridview-when-no-data.aspx&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3117479.aspx</link><pubDate>Fri, 24 Apr 2009 23:44:17 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3117479</guid><dc:creator>iamacyborg</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3117479.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3117479</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;This is how I handled it. I think this is simpler than the other &amp;quot;override the GridView control&amp;quot; methods that have been posted here.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class OtisGridView : GridView {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private bool _emptyGrid = false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void PerformDataBinding(IEnumerable data) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _emptyGrid = false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (data is DataView) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataView view = (DataView)data;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataTable table = view.Table;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (table.Rows.Count == 0) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // create a &amp;quot;dummy&amp;quot; row to prevent &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // &amp;quot;empty&amp;quot; state &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DataRow row = table.NewRow();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; table.Rows.Add(row);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _emptyGrid = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.PerformDataBinding(data);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void InitializeRow(GridViewRow row, DataControlField[] fields)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (_emptyGrid &amp;amp;&amp;amp; row.RowType == DataControlRowType.DataRow) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.Visible = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.InitializeRow(row, fields);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Edit: I see above somone already posted something very similar, only using events. That is good if you have just one gridview. This is good if you are using it in many places in your site.&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3110796.aspx</link><pubDate>Wed, 22 Apr 2009 15:30:20 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3110796</guid><dc:creator>Pak514</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3110796.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3110796</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="/Themes/fan/images/icon-quote.gif"&gt; &lt;strong&gt;azamsharp:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;I am saying that when the following command gets executed does it access the database: 

SqlDataSource.SelectCommand = &amp;quot;select &amp;#39;&amp;#39; as f1,&amp;#39;&amp;#39; as f2,&amp;#39;&amp;#39; as f3,&amp;#39;&amp;#39; as f4,&amp;#39;&amp;#39; as f5,&amp;#39;&amp;#39; as f6  from dual&amp;quot;;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;My bad, I thought you were talking about the OP solution. &lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3110605.aspx</link><pubDate>Wed, 22 Apr 2009 14:09:46 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3110605</guid><dc:creator>azamsharp</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3110605.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3110605</wfw:commentRss><description>I am saying that when the following command gets executed does it access the database: 

SqlDataSource.SelectCommand = &amp;quot;select &amp;#39;&amp;#39; as f1,&amp;#39;&amp;#39; as f2,&amp;#39;&amp;#39; as f3,&amp;#39;&amp;#39; as f4,&amp;#39;&amp;#39; as f5,&amp;#39;&amp;#39; as f6  from dual&amp;quot;;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3110494.aspx</link><pubDate>Wed, 22 Apr 2009 13:24:14 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3110494</guid><dc:creator>Pak514</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3110494.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3110494</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="/Themes/fan/images/icon-quote.gif"&gt; &lt;strong&gt;azamsharp:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;/p&gt;&lt;p&gt;The above solution will end up with one extra database fetching! &lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;p&gt;What do you mean, I don&amp;#39;t understand your statement can you please elaborate. The complete solution works well with .net 2.0 GridView when no records are present in DataTable and DataSet. No problems encountered thus far.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3108319.aspx</link><pubDate>Tue, 21 Apr 2009 18:08:49 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3108319</guid><dc:creator>azamsharp</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3108319.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3108319</wfw:commentRss><description>&lt;p&gt;The above solution will end up with one extra database fetching! &lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/3108120.aspx</link><pubDate>Tue, 21 Apr 2009 16:30:40 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3108120</guid><dc:creator>Pak514</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3108120.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3108120</wfw:commentRss><description>Very nice solution, beats adding a dummy row to a dataset and binding it that way. Thanks.&lt;br /&gt;</description></item><item><title>Re: simplest way - eyad</title><link>http://forums.asp.net/thread/3030740.aspx</link><pubDate>Mon, 23 Mar 2009 16:59:47 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3030740</guid><dc:creator>gemsgems</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3030740.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=3030740</wfw:commentRss><description>&lt;p&gt;the simple way to put select command of SqlDataSource control to get default row as this :&lt;/p&gt;
&lt;p&gt;SqlDataSource.&lt;font size="2"&gt;SelectCommand = &lt;/font&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;select &amp;#39;&amp;#39; as f1,&amp;#39;&amp;#39; as f2,&amp;#39;&amp;#39; as f3,&amp;#39;&amp;#39; as f4,&amp;#39;&amp;#39; as f5,&amp;#39;&amp;#39; as f6 &amp;nbsp;from dual&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;where :&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;f1,f2,... the name of columns that uses&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;SqlDataSource is the control that bind your DataGrid&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/2760853.aspx</link><pubDate>Fri, 21 Nov 2008 18:39:19 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2760853</guid><dc:creator>azamsharp</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2760853.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=2760853</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;Just bind it to an empty DataSet or DataTable and the headers and footers will be displayed&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/2759282.aspx</link><pubDate>Fri, 21 Nov 2008 03:51:47 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2759282</guid><dc:creator>y34h</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2759282.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=2759282</wfw:commentRss><description>&lt;p&gt;after a few suffering and some forum-surfing i said to my self : &amp;quot;AAHHH what the hell !!, i&amp;#39;ll do it my self XDD&amp;quot;&lt;/p&gt;&lt;p&gt;so... here&amp;#39;s my solution&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="coloredcode"&gt;	&lt;span class="kwd"&gt;bool&lt;/span&gt; empty = &lt;span class="kwd"&gt;false&lt;/span&gt;;

	&lt;span class="kwd"&gt;protected void&lt;/span&gt; ObjectDataSource1_Selected(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, ObjectDataSourceStatusEventArgs e)
	{
		DataTable t = (DataTable)e.ReturnValue;
		&lt;span class="kwd"&gt;if&lt;/span&gt; (t.Rows.Count == 0)
		{
			t.Rows.Add(&lt;span class="kwd"&gt;new object&lt;/span&gt;[] { });
			empty = &lt;span class="kwd"&gt;true&lt;/span&gt;;
		}
	}

	&lt;span class="kwd"&gt;protected void&lt;/span&gt; GridView1_DataBound(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, EventArgs e)
	{
		&lt;span class="kwd"&gt;if&lt;/span&gt; (empty) GridView1.Rows[0].Visible = &lt;span class="kwd"&gt;false&lt;/span&gt;;
	}&lt;/pre&gt;&amp;nbsp;&lt;br /&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/2598374.aspx</link><pubDate>Wed, 03 Sep 2008 18:49:13 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2598374</guid><dc:creator>Kriswd40</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2598374.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=2598374</wfw:commentRss><description>&lt;p&gt;Several years late, but this is a much simpler way to get the heading to display:&lt;/p&gt;&lt;font size="2"&gt;datagridName.DataSource = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;DataTable&lt;/font&gt;&lt;font size="2"&gt;();&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;datagridName.DataBind();&lt;/p&gt;
&lt;p&gt;Works with datagrid, I have not tested with gridView.&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: Solution: Show Header/Footer of Gridview with Empty Data Source</title><link>http://forums.asp.net/thread/2508410.aspx</link><pubDate>Wed, 23 Jul 2008 11:28:02 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2508410</guid><dc:creator>faruk2011</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2508410.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=53&amp;PostID=2508410</wfw:commentRss><description>&lt;p&gt;excellent solution. working properly. &lt;/p&gt;
&lt;p&gt;Thank you very much. &lt;/p&gt;
&lt;p&gt;Faruk Ahmed &lt;/p&gt;</description></item></channel></rss>