让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就行了。

你可能感兴趣的:(GridView)