Вот мои кнопки:Баттона изменения Page_Init и между ними Page_Load
<asp:Button ID="PreviousButton" CssClass="previous-button button" Text="Previous" Visible="false" OnClick="PreviousButton_Click" runat="server" />
<asp:Button ID="NextButton" CssClass="next-button button" Text="Next" Visible="false" OnClick="NextButton_Click" runat="server" />
Во Page_Init
этого кода:
NextButton.Visible = bNextEnabled;
PreviousButton.Visible = bPreviousEnabled;
Оба bNextEnabled
и bPreviousEnabled
являются True
в этой точке.
В конце Page_Init
Response.Write(NextButton.Visible.ToString())
является True
.
В конце Page_Init
Response.Write(PreviousButton.Visible.ToString())
является True
.
-
В начале Page_Load
Response.Write(NextButton.Visible.ToString())
является False
.
В начале Page_Load
Response.Write(PreviousButton.Visible.ToString())
является True
.
Я экстраполировал код для кнопок, но я предоставил что-нибудь еще, что могло бы быть уместным, хотя я понятия не имею, что это может быть пока.
Ни в коем случае на странице не отображается свойство Visible для любой кнопки. Страница, на которой кнопки перестают работать, - это обратная передача. На странице до обратной передачи обе кнопки установлены на Visible = false
, хотя я не могу представить, как это повлияет на вещи.
Так что происходит здесь? Обе кнопки используют точно такой же код, и все же один работает так, как ожидалось, а другой не работает.
Хорошо, это имеет смысл, я подозревал, что это может быть что-то в этом роде. Однако это не объясняет, почему выполняется только следующая кнопка. На предыдущей странице обе кнопки скрыты, поэтому ничего не осталось в эффекте viewstate для обеих кнопок? Что может вызвать эту несогласованность? Я не думаю, что могу использовать PreLoad, как это делается в UserControl, а не на странице. – Jon
Было бы сложно отладить вашу проблему без использования всего кода. Вы можете установить кнопки EnableViewState = "false", чтобы увидеть, что происходит, и помочь проверить, где проблема. – patmortech
Я понимаю. Программа огромна, хотя я не могу это сделать реалистично. Я выбрал то, что, надеюсь, важные части, поскольку я долгое время отлаживал и практически лишил все, что мог, в программе.Вывод свойства Visible на экран во время моей программы я по существу прибил его к черному ящику, который происходит между Init и Load. Это один из тех вопросов, о которых я просто хотел бы услышать ответ из-за, по-видимому, непоследовательного поведения между двумя, казалось бы, идентичными кнопками. – Jon