让GridView始终显示Pager
GridView的Pager有一个特性,就是当PageSize大于要显示的数据的行数时,Pager就自动隐藏了。这本没什么问题。不过最近自定义了GridView控件,在Pager所在的行中加入了一个DropDownList用来设置PageSize,用户可以通过这个DropDownList来动态的调整GridView每页显示的数据行数。问题是,当用户设置的PageSize超过了数据总行数,Pager消失了,捎带着设置PageSize的DropDownList也一并没了,用户没法再设置PageSize了。
解决的办法,很简单,代码如下:
protected override int CreateChildControls(System.Collections.IEnumerable dataSource, bool dataBinding) { int returnValue = base.CreateChildControls(dataSource, dataBinding); if (AllowPaging && TopPagerRow != null) { TopPagerRow.Visible = true; //BottomPagerRow.Visible = true; } return returnValue; }
关键之处就在于override返回int的那个CreateChildControls方法,然后根据需要设置TopPagerRow/BottomPagerRow的Visible属性为true就行了。
理解的越多,需要记忆的就越少