随笔-24  评论-78  文章-1  trackbacks-2

GridView 始终显示 Pager 分页行的一种方法

最近一直在使用 ASP.NET,由于之前大部分工作都是使用 WinForm,对 ASP.NET 的理解还只是停留在表面,所以借着这次机会,深入的研究一下 ASP.NET。原则是尽量使用 ASP.NET 的编程模型和 Web 控件实现业务交互。

GridView 是 ASP.NET 2.0 新增加的 Web 控件,拥有比 DataGrid 更多的扩展和改进。使用 GridView 可以很容易的实现数据分页,但是遗憾的是,在缺省情况下,当仅有一页数据时, GridView 不显示 Pager 分页行,这非常让人郁闷。

在网上搜索了一下解决此问题的有关方法,基本的思路都是使用自定义 Pager,自己实现分页显示。这个思路很好,可是我的应用并不复杂,对分页也没有特殊的要求,只是能显示就好,为了这么点要求重写写那么多代码,太不划算。有没有好的解决方法呢?

还真不是没办法,我发现 GridView 的 Controls 集合中包括了 Header、DataRow、Footer、Pager等等所有可以显示的行,而且不管有没有显示,这些行都包含在 Controls 集合中,只不过仅有一页数据时,Pager 行的 Visible 属性被设置为了 false。既然如此,只要在数据绑定结束后把 Pager 行的 Visible 重新设置为 true 不就解决问题了吗?下面是解决方法:

 

    public static void gridView_DataBound(object sender, EventArgs e)
    {
        
if (gridView.Rows.Count != 0)
        {
            Control table 
= gridView.Controls[0];
            
int count = table.Controls.Count;
            table.Controls[count 
- 1].Visible = true;
        }
    }

 

 

 

posted on 2008-10-09 10:25 zsi 阅读(2032) 评论(4) 编辑 收藏

评论:
#1楼 2008-10-09 13:22 | 陈晨      
不错的方法^_^
 回复 引用 查看   
#2楼 2009-04-14 11:36 | 月漩涡[未注册用户]
我试了试怎么没反映啊。
 回复 引用   
#3楼 2009-08-08 11:18 | 长天之云      
grid.BottomPagerRow.Visible = true;
是更好的做法.

 回复 引用 查看   
#4楼 2009-08-21 09:32 | 意识与存在      
很好的方法,独创吗?
 回复 引用 查看   
昵称:zsi
园龄:7年3个月
粉丝:1
关注:0
<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

搜索

 
 

常用链接

我的标签

随笔分类(22)

随笔档案(24)

文章档案(1)

相册

.net Community

C#

VB.net

技术专题

最新评论

阅读排行榜

评论排行榜

推荐排行榜