Я должен иметь возможность изменять другие элементы управления из обработчика событий страницы ASP.NET? - PullRequest
0 голосов
/ 07 ноября 2008

Я пытаюсь отключить элемент управления меткой из обработчика событий CheckedChanged флажка. Должен ли я быть в состоянии сделать это?

В настоящий момент, если я установил для Enabled значение false, при перезагрузке страницы ничего не изменится Если я делаю то же самое в Page_Load, я вижу изменение.

Для уточнения:

Это не работает:

protected void chkNeverExpires_CheckedChanged(object sender, EventArgs e)
{
    this.lblMessage.Enabled = false
}

Но это так:

protected void Page_Load(object sender, System.EventArgs e)
{
    this.lblMessage.Enabled = false
}

1 Ответ

2 голосов
/ 07 ноября 2008

Вы уверены, что ваши события запускаются в том порядке, в котором вы ожидаете? Установите точки останова на все ваши методы обратной передачи и посмотрите, что произойдет. Сбрасываете ли вы включенное состояние где-нибудь? у вас есть enableviewstate = false на что-нибудь?

Редактировать: вы понимаете, что CheckedChanged не запускается, пока вы не выполните обратную передачу от другого элемента управления, или у вас есть AutoPostBack = true на checbkbox?

Это прекрасно работает:

<asp:Label runat="server" ID="lblTest">test</asp:Label>
<asp:CheckBox runat="server" ID="chkCheck" AutoPostBack="true" />Check

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    chkCheck.CheckedChanged += chkCheck_CheckedChanged;
}

private void chkCheck_CheckedChanged(object sender, EventArgs e)
{
    lblTest.Enabled = false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...