Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置GridView的默认页面大小_C#_Asp.net_.net_Overriding - Fatal编程技术网

C# 设置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

我试图重写grid视图的PageSize属性,将默认值设置为100,但当代码执行时,它将采用基类中定义的默认值。有人能帮我设置默认页面大小吗。我正在扩展gridview控件,以便根据需要进行自定义。 代码如下:

    [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;
    }
}