Как передать значение в конструкторе, чтобы включить или отключить кнопку в элементе управления asp.net? - PullRequest
0 голосов
/ 23 февраля 2011

У меня есть конструктор в моем пользовательском элементе управления С главной страницы я просто заново инициализирую пользовательский элемент управления.

Я пытался

// Конструктор

 UserControl(isNew)
  {
    this.btnAdd.Enabled=true;

  }

BtnAdd - это элемент управления (aspx button runat server), который я хочу отключить.

Во время компиляции он не показывает ошибку. Но во время выполнения Он выдает ошибку, говоря btnAddis null. Object reference not set to an instance of an object. для btnAdd. Thnaks

Ответы [ 2 ]

1 голос
/ 23 февраля 2011

Используйте событие Page_Init и свойство.

[BrowsableAttribute(True)]
[DefaultValue("true")]
public bool IsNew { get; set; }

protected void Page_Init(object sender, EventArgs e)
{
    btnAdd = IsNew;
}
1 голос
/ 23 февраля 2011

Почему бы просто не включить кнопку по умолчанию?

<asp:Button ID="btnAdd" Enabled="true" runat="server" Text="Add" />

Вы не должны использовать конструктор UserControl, потому что содержимое UserControl (как ваша кнопка) будет инициализировано после самого UserControl. Если вы создаете UserControl динамически, вы должны использовать LoadControl для его инициализации. Предоставьте свойство в этом UC (например, CanAdd as Boolean), чтобы вы могли контролировать это поведение извне (например, Page).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...