2015-09-09 3 views
1

У меня есть главная страница с меткой ... Когда я пытаюсь найти эту метку на бэкэнде, она возвращает мне нуль ... Любой может мне помочь?masterpage with findcontrol return 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"); 

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

ответ

2

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

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

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

+0

Я могу использовать Label lbAlert = (Label) Master.FindControl ("lbAlert"); слишком? –

+0

Несомненно. «Это» относится к экземпляру и избыточно при использовании Мастера. В противном случае вы вызываете родительскую главную страницу текущей главной страницы. Это NULL. – jdaval