ASP.NET: назначить переменную перед отображением пользовательского элемента управления - PullRequest
1 голос
/ 16 сентября 2009

(Новое в ASP.NET здесь.)

У меня есть пользовательский элемент управления, который должен проверить значение в строке запроса, прежде чем решить, что отображать:

<%# softLoaded ? "HELLO" : "GOOD BYE" %>

Это код для пользовательского элемента управления:

public bool softLoaded { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    softLoaded = "apply".Equals(Request.QueryString["apply"]);
}

Я отладил приложение и обнаружил, что softLoaded - это true, когда оно должно быть, и false, когда оно должно быть, но независимо от значения, сгенерированный HTML-код говорит «ХОРОШО» (как если значение было false). Это заставляет меня поверить, что Page_Load называется «слишком поздно», в результате чего в файле .ascx используется значение по умолчанию для bool, равное false.

.

Что я делаю не так? Как мне это решить?

Ответы [ 2 ]

2 голосов
/ 16 сентября 2009

Это выражение для привязки данных. Вам необходимо установить значение переменной в любое время до того, как произойдет привязка данных. Page_Load, OnInit или OnPreInit, например.

0 голосов
/ 16 сентября 2009

Я нашел проблему. Мне нужно вызвать DataBind() в методе Page_Load моего контроля, чтобы реально все произошло. Я не совсем понимаю, как это работает, но это точно!

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