为了使GridView、DataList、Repeater等控件显示的数据适应不同的显示器分辨率,往往需要根据显示器分辨率的大小选择每页显示多少条数据。
偶也遇到了这个
问题,总结解决方法如下:
1.通过url方式更改PageSize
AspNetPagerVersion7.1以上版本可以使用UrlPageSizeName参数来更改。
PageSize属性源码(Properties.cs文件中):
publicintPageSize
{
get
{
//检测使用UrlPageSizeName参数
if(!string.IsNullOrEmpty(UrlPageSizeName)&;&;!DesignMode)
{
intpageSize;
if(int.TryParse(Page.Request.QueryString[UrlPageSizeName],outpageSize))
{
if(pageSize>0)
returnpageSize;
}
}
//End
if(null!=cloneFrom)
returncloneFrom.PageSize;
objectobj=ViewState["PageSize"];
return(obj==null)?10:(int)obj;
}
set
{
ViewState["PageSize"]=value;
}
}
2.通过自定义下拉框更改PageSize
a)在Properties.cs文件中增加ShowPageSizeBox属性
///
NETPAGERDOCS.XML'PATH='ASPNETPAGERDOC *? ] Property[@name="ShowPageSizeBox" />
[Browsable(true),ANPCategory("cat_PageSizeBox"),DefaultValue(null),ANPDescription("desc_ShowPageSizeBox")]
publicboolShowPageSizeBox
{
get
{
if(null!=cloneFrom)
returncloneFrom.ShowPageSizeBox;
objectobj=ViewState["ShowPageSizeBox"];
//此处为当未设置ShowPageSizeBox属性时,取web.config中AppSettings的ShowPageSizeBox
if(obj==null)
{
obj=System.Configuration.ConfigurationManager.AppSettings["ShowPageSizeBox"];
}
return(obj==null)?false:bool.Parse(obj.ToString());
}
set{ViewState["ShowPageSizeBox"]=value;}
}