none
Alterando Label na master page RRS feed

  • Pergunta

  • Como faço para alterar o valor de um Label que é usado como titulo no minha master page? através das páginas filhas?
    terça-feira, 30 de abril de 2013 21:17

Respostas

  • Carlos,

    Se o evento que está disparando esta atualização estiver dentro de um UpdatePanel, sem os devidos tratamentos somente o bloco dentro do UpdatePanel será atualizado na página.

    Tem várias maneiras de resolver... se você não quiser fazer o full-postback, eu diria o seguinte:

    - Colocar a label em um UpdatePanel;

    - Definir para este UpdatePanel a propriedade UpdateMode como Conditional:

    <asp:UpdatePanel ID="udpTeste" UpdateMode="Conditional" runat="server">

    - No Code Behind, dentro do método de atualização da label, chamar o método Update (do UpdatePanel):

    udpTeste.Update();

    * Tem outras formas, utilizando Triggers para determinados eventos atualizarem o UpdatePanel, porém, para este caso acho mais prático a solução acima.

    • Marcado como Resposta CEFL quinta-feira, 2 de maio de 2013 16:49
    quinta-feira, 2 de maio de 2013 15:21

Todas as Respostas

  • Olá Carlos,

    O jeito mais tranquilo é você criar um método publico em sua Master Page que altere a label conforme parâmetro.

    Nas páginas filhas bastaria recuperar essa Master e chamar o método, conforme exemplo:

    //Master Page
    public void AlteraTitulo(string titulo)
    {
         lblTitulo.Text = titulo;
    }
    
    //Pagina filha
    ((CastParaSuaMasterPage)this.Master).AlteraTitulo("Titulo Alterado");

    • Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 30 de abril de 2013 23:43
    • Não Sugerido como Resposta CEFL quinta-feira, 2 de maio de 2013 14:57
    terça-feira, 30 de abril de 2013 22:37
  • Carlos,

    Você pode fazer assim:

    ((Label)this.Master.FindControl("NomeDoSeuLabel")).Text = "valor";


    Att,
    Leandro

    Se foi útil, marque como útil ou como resposta.

    • Sugerido como Resposta Leandro Tozetto quarta-feira, 1 de maio de 2013 14:14
    • Não Sugerido como Resposta CEFL quinta-feira, 2 de maio de 2013 14:57
    quarta-feira, 1 de maio de 2013 14:14
  • Eu fiz de ambos os jeitos, fiz um debug ele altera o valor, mas não exite, tem algum evento que eu deva tratar para que ocorra o postback e atualize?
    quinta-feira, 2 de maio de 2013 14:57
  • Carlos,

    Se o evento que está disparando esta atualização estiver dentro de um UpdatePanel, sem os devidos tratamentos somente o bloco dentro do UpdatePanel será atualizado na página.

    Tem várias maneiras de resolver... se você não quiser fazer o full-postback, eu diria o seguinte:

    - Colocar a label em um UpdatePanel;

    - Definir para este UpdatePanel a propriedade UpdateMode como Conditional:

    <asp:UpdatePanel ID="udpTeste" UpdateMode="Conditional" runat="server">

    - No Code Behind, dentro do método de atualização da label, chamar o método Update (do UpdatePanel):

    udpTeste.Update();

    * Tem outras formas, utilizando Triggers para determinados eventos atualizarem o UpdatePanel, porém, para este caso acho mais prático a solução acima.

    • Marcado como Resposta CEFL quinta-feira, 2 de maio de 2013 16:49
    quinta-feira, 2 de maio de 2013 15:21