C# 设置GridView的默认页面大小
我试图重写grid视图的PageSize属性,将默认值设置为100,但当代码执行时,它将采用基类中定义的默认值。有人能帮我设置默认页面大小吗。我正在扩展gridview控件,以便根据需要进行自定义。 代码如下:C# 设置GridView的默认页面大小,c#,asp.net,.net,overriding,C#,Asp.net,.net,Overriding,我试图重写grid视图的PageSize属性,将默认值设置为100,但当代码执行时,它将采用基类中定义的默认值。有人能帮我设置默认页面大小吗。我正在扩展gridview控件,以便根据需要进行自定义。 代码如下: [DefaultValue(100)] public override int PageSize { get { return base.PageSize; } set
[DefaultValue(100)]
public override int PageSize
{
get
{
return base.PageSize;
}
set
{
base.PageSize = value;
}
}
或者,我应该尝试在某种重写方法中设置我的默认页面Sie,如
protected override void OnInit(EventArgs e)
{
base.PageSize = 100;
base.OnInit(e);
}
或
DefaultValueAttribute不适用于实际默认值,它仅适用于VS designer-第一种方法不起作用。 引用MSDN: DefaultValueAttribute不会导致使用该属性的值自动初始化成员。必须在代码中设置初始值 第二个和第三个方法将PageSize更改为100,但它将为每个gridview更改,而不可能在aspx页面中更改它 我发现最好的方法是重新创建属性:
private int _pageSize = 100;
public override int PageSize
{
get
{
return this._pageSize;
}
set
{
this._pageSize = value;
}
}
这样,默认页面大小将为100,除非每个gridview基础(在aspx PageSize=“50”或cs gv.PageSize=50文件中)另有设置。这里也有同样的问题@Evaldas解决方案似乎不起作用-似乎没有触发覆盖(但确实触发了某些事件的覆盖)。我意识到这篇文章已经过时了,你找到解决办法了吗?
private int _pageSize = 100;
public override int PageSize
{
get
{
return this._pageSize;
}
set
{
this._pageSize = value;
}
}