2014-01-02 7 views
0

Этого код для обхода имеющего названия шага мастера, когда мастер свойство DisplaySideBar является False, не будет работать, метка lbl будет null:Как получить доступ к элементам управления внутри мастера headtemplate asp.net?

protected void Wizard1_ActiveStepChanged(object sender, EventArgs e) 
{ 
// Grab a reference to the label control 
Label lbl = (Label)Wizard1.FindControl("lblStepTitle"); 
lbl.Text = Wizard1.ActiveStep.Title; 
} 

HTML, (опущены шаги мастера):

<asp:Wizard ID="Wizard1" runat="server" ActiveStepIndex="0" DisplaySideBar="False" 
OnActiveStepChanged="Wizard1_ActiveStepChanged" 
      OnNextButtonClick="Wizard1_NextButtonClick" 
      OnFinishButtonClick="Wizard1_FinishButtonClick"> 
      <HeaderStyle HorizontalAlign="Center" Font-Bold="True" /> 
      <HeaderTemplate> 
       Edit User Wizard 
       <br /> 
       <br /> 
       <asp:Label ID="lblStepTitle" runat="server" Text="Step Title"></asp:Label> 
      </HeaderTemplate> 
</asp:Wizard> 

ответ

0

Из этого blog решение состоит в том, чтобы сначала найти элемент управления, созданный во время выполнения HeaderContainer нет, где зарегистрировано MSDN page

protected void Wizard1_ActiveStepChanged(object sender, EventArgs e) 
{ 
    // Grab a reference to the label control 
    Label lbl = (Label)Wizard1.FindControl("HeaderContainer").FindControl("lblStepTitle"); 
    lbl.Text = Wizard1.ActiveStep.Title; 
} 
+0

Что делать, если нет шаблона заголовка (или любого другого шаблона)? – user1451111

Смежные вопросы