мастер-страница с findcontrol возвращает null

У меня есть мастер-страница с меткой... Когда я пытаюсь найти эту метку в бэкэнде, она возвращает мне ноль... Кто-нибудь может мне помочь?

<div class="container">
    <div class="row" runat="server" id="Alert" visible="false">
        <div class="alert alert-danger alert-dismissible" role="alert">
            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                <span aria-hidden="true">&times;</span></button>
            <strong>Atenção! </strong>
            <asp:Label ID="lbAlert" for="Alert" runat="server" />
            <asp:LinkButton ID="lbkbtnAtivar" for="Alert" runat="server" />
        </div>
    </div>
</div>

и бэкенд.

        Label lbAlert = (Label)this.Master.FindControl("lbAlert");
        LinkButton lbkbtnAtivar = (LinkButton)this.Master.FindControl("lbkbtnAtivar");

Если кто знает, помогите пожалуйста!! :)


person Felipe A.    schedule 09.09.2015    source источник


Ответы (1)


Удалить "Мастер"

Label lbAlert = (Label)this.FindControl("lbAlert");
LinkButton lbkbtnAtivar = (LinkButton)this.FindControl("lbkbtnAtivar");

Вы уже находитесь в соответствующей области для класса. Следовательно, «это» относится к мастер-странице.

person jdaval    schedule 09.09.2015
comment
Я могу использовать Label lbAlert = (Label)Master.FindControl(lbAlert); слишком? - person Felipe A.; 09.09.2015
comment
Конечно. Это относится к экземпляру и является избыточным при использовании Master. В противном случае вы вызываете родительскую главную страницу текущей главной страницы. Что равно NULL. - person jdaval; 09.09.2015