2013-08-28 7 views
1

Я пытаюсь переопределить свойство PageSize сетки, чтобы установить значение по умолчанию 100, но когда код выполняется, он принимает значение по умолчанию, определенное в базовом классе. Может кто-нибудь, пожалуйста, помогите, как я могу установить свой default PageSize. Я расширяю элемент управления gridview для настройки в соответствии с моей потребностью. Вот код:Set Default PageSize of 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); 
    } 

Или

protected override void OnLoad(EventArgs e) 
    { 
     base.PageSize = 100; 
     base.OnLoad(e); 
    } 

ответ

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 файлов).