设置GridView的默认PageSize

时间:2013-08-28 09:59:34

标签: c# asp.net .net override

我试图覆盖网格视图的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);
    }

1 个答案:

答案 0 :(得分:0)

DefaultValueAttribute不是真正的默认值,仅适用于VS设计者 - 第一种方法不起作用。 从MSDN引用:

  

DefaultValueAttribute不会导致使用属性的值自动初始化成员。您必须在代码中设置初始值。

http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute%28v=vs.110%29.aspx

第二种和第三种方法会将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个文件中)。