我试图覆盖网格视图的PageSize属性以将默认值设置为100,但是当代码执行时,它将采用基类中定义的默认值。任何人都可以帮助我如何设置我的默认PageSize。我正在扩展gridview控件以根据我的需要进行自定义。 这是代码:
[DefaultValue(100)]
public override int PageSize
{
get
{
return base.PageSize;
}
set
{
base.PageSize = value;
}
}
或者我应该尝试在某些重写方法中设置我的默认Page Sie。
protected override void OnInit(EventArgs e)
{
base.PageSize = 100;
base.OnInit(e);
}
或
protected override void OnLoad(EventArgs e)
{
base.PageSize = 100;
base.OnLoad(e);
}
答案 0 :(得分:0)
DefaultValueAttribute不是真正的默认值,仅适用于VS设计者 - 第一种方法不起作用。 从MSDN引用:
DefaultValueAttribute不会导致使用属性的值自动初始化成员。您必须在代码中设置初始值。
第二种和第三种方法会将PageSize更改为100,但它会针对每个gridview进行更改,而无法在aspx页面中更改它。
我发现它的最佳工作方式是重新创建属性:
private int _pageSize = 100;
public override int PageSize
{
get
{
return this._pageSize;
}
set
{
this._pageSize = value;
}
}
这样默认的PageSize将为100,除非以每个gridview为基础设置(在aspx PageSize =“50”或cs gv.PageSize = 50个文件中)。