您的位置:首页 > 其它

A more elegant solution to display GridView header and footer when the data source is empty. (cite)

2008-02-01 23:54 639 查看
http://weblogs.asp.net/joewrobel/archive/2008/01/30/a-more-elegant-solution-to-display-gridview-header-and-footer-when-the-data-source-is-empty.aspx

So here is my solution. I'll cover the main points of interest and if you want to see more, I have

uploaded all the source and example to the new MSDN Code Gallery.

http://code.msdn.microsoft.com/AlwaysShowHeaderFoot

Start out by extending the GridView control and add the following structure.

The most important part here is to override the PerformDataBinding method.





As you can see here. I am intercepting the data and making sure there is at lease one row.

If there is, the control behaves normally.

On the line with the red arrow, I am checking if the binding source is a DataView.

If it is, I can just add a row here and be done with it.

If the binging source is not a DataView (or DataSet), then I fire an event that will need to be handled.





The event "MustAddARow", as seen here, will provide access to the binding data and allow you to add a row.





Here is a snippet from a page where I handle the MustAddARow event.

In this case, I am binding a List of Products to the GridView.

As you can see, I'm just adding a new Product to the list. It doesn't matter what data you add here

because it will get hidden in back in the GridView.





And finally back in the GridView, I override the OnDataBound method so I can hide that extra row.





So there you have it. This is my first blog post ever. It's exciting, but I have to admit, I'm a little scared.

I see there is a lot of commotion going on about the overwhelming number of useless blogs lately.

Hopefully someone will get some use out of this.

Thanks

-Joe
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐