none
Eventos em Web User Control RRS feed

  • Pergunta

  • Bom Dia Pessoal

    É o seguinte estou fazendo um web user control com cinco botões pq estes se repetem em várias páginas minhas, mas em cada página o código dos botões muda, tem como eu inserir códigos (eventos) nestes botões, pois quando eu dou dois cliques no web user control ele me mostra somente o evento page_load não consegui pegar o evento onclick de um determinado botão.
    Por favor preciso de exemplos em c#.

    Desde já agradeço.
    segunda-feira, 16 de outubro de 2006 11:22

Respostas

  • Vou postar um exemplo, apesar da data inicial desta postagem.

    No Code-Behind do UserControl
            // Criação da delegação e definição dos argumentos do evento
            public delegate void ClicarNoBotao(object sende, DateTime dataDoClique);
    
            // Criação do Evento Personalizado
            public event ClicarNoBotao ClickBotao;
    
            // Método para quando o usuário clica no botão
            protected void Button1_Click(object sender, EventArgs e)
            {
                // Verificação se o evento "ClickBotao" foi definido
                if (this.ClickBotao != null)
                {
                    // Caso tenha sido definido, chama o evento
                    // passando os argumentos necessários
                    this.ClickBotao(sender, DateTime.Now);
                }
            }
    

    Conteúdo do UserControl ( HTML )
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Evento Personalizado" />

    Em uma página qualquer do meu Site
    <!--  este fica no topo da página  -->
    <%@ Register Src="userControls/CustomDelegateUserControl.ascx" TagName="CustomDelegateUserControl"
        TagPrefix="uc1" %>
    
    
    <!--  Este fica no lugar em que for necessário  -->
    <uc1:CustomDelegateUserControl id="CustomDelegateUserControl1" runat="server">
    </uc1:CustomDelegateUserControl>

    No código desta mesma página escolhida
            protected void Page_Load(object sender, EventArgs e)
            {
                // Indicado ao "UserControl" qual deverá ser o método 
                // chamado neste evento
                this.CustomDelegateUserControl1.ClickBotao += new WebApplication1.userControls.CustomDelegateUserControl.ClicarNoBotao(CustomDelegateUserControl1_ClickBotao);
            }
    
            // método criado para capturar a execução do evento
            // disparado pelo UserControl
            void CustomDelegateUserControl1_ClickBotao(object sende, DateTime dataDoClique)
            {
                // qualquer coisa que você quiser fazer
                // ficará aki dentro.
            }
    


    Espero ter ajudado a quem estivesse precisando de um "exemplo".

    Boa sorte a todos e, qualquer dúvida, posta aqui para que possamos te ajudar.

    Qualquer duvida, posta aqui para que possamos te ajudar.
    Rafael F. P.
    MTS em Aplicações WEB c/ .NET 2.0

    Se a resposta de alguém foi útil, marque a resposta como tal.
    Se alguém conseguiu te ajudar, poderia marcar como "Respondido" ?
    Obs: Resposta útil é diferente de resposta final.

    Grato. :)
    quinta-feira, 13 de agosto de 2009 15:40

Todas as Respostas

  • Antônio, não entendi.

    Você está dizendo que ao clicar duas vezes num botão do WebUserControl e ele não gera o evento em CodeBehind pra você?

    Então deve ter alguma coisa errada com seu webUSerControl, pode postar pra gente o código?

    Ou detalhar um pouco mais sobre o que deseja fazer?

    segunda-feira, 16 de outubro de 2006 12:15
  • Olá Fabiano
    Segue abaixo o código do meu web user control

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="wcBotoes.ascx.cs" Inherits="Cadastro_wcBotoes" %>

    <asp:Panel ID="Panel1" runat="server" Height="36px" Style="z-index: 105; left: 0px;
        position: absolute; top: 0px" Width="307px" BorderColor="Gray" BorderStyle="Solid" BorderWidth="1px">
    <!-- Botão Confirmar -->
    <asp:Button ID="btnConfirmar" runat="server" BackColor="#FFFBFF" BorderColor="#CCCCCC"
        BorderStyle="Solid" BorderWidth="1px" Font-Names="Trebuchet MS" Font-Size="8pt"
        ForeColor="#284775" Height="24px" Style="z-index: 100;
        left: 5px; position: absolute; top: 5px" TabIndex="6" Text="Confirmar" Width="70px"  />
    <!-- Botão Excluir -->
    <asp:Button ID="btnExcluir" runat="server" BackColor="#FFFBFF" BorderColor="#CCCCCC"
        BorderStyle="Solid" BorderWidth="1px" Font-Names="Trebuchet MS" Font-Size="8pt"
        ForeColor="#284775" Height="24px" Style="z-index: 101;
        left: 80px; position: absolute; top: 5px" TabIndex="7" Text="Excluir" Width="70px"  />
    <!-- Botão Limpar -->
    <asp:Button ID="btnLimpar" runat="server" BackColor="#FFFBFF" BorderColor="#CCCCCC"
        BorderStyle="Solid" BorderWidth="1px" Font-Names="Trebuchet MS" Font-Size="8pt"
        ForeColor="#284775" Height="24px" Style="z-index: 102;
        left: 155px; position: absolute; top: 5px" TabIndex="8" Text="Limpar" Width="70px" />
    <!-- Botão Sair -->
    <asp:Button ID="btnSair" runat="server" BackColor="#FFFBFF" BorderColor="#CCCCCC"
        BorderStyle="Solid" BorderWidth="1px" Font-Names="Trebuchet MS" Font-Size="8pt"
        ForeColor="#284775" Height="24px" Style="z-index: 103;
        left: 230px; position: absolute; top: 5px" TabIndex="9" Text="Sair" Width="70px" />
    </asp:Panel>

    Como você pode ver tenho os botões mas quando eu insiro este web user control em uma página aspx mesmo clicando no botão desejado não consigo o evento do mesmo o que acontece é que vou para o evento Load do web user control.







    segunda-feira, 16 de outubro de 2006 12:45
  • Obrigado a todos.
    O problema já foi resolvido.
    Consegui um exemplo na net de como inserir eventos em web user controls.
    segunda-feira, 16 de outubro de 2006 19:29
  •  Antonio de Lemos wrote:
    Obrigado a todos.
    O problema já foi resolvido.
    Consegui um exemplo na net de como inserir eventos em web user controls.

     

    Passa para mim este exemplo estou precisando.

     

    Abraços

    quarta-feira, 4 de julho de 2007 16:59
  • Não seja egoísta, publique a solução. A dúvida de um pode ser a dúvida de outros!
    quinta-feira, 13 de agosto de 2009 15:16
  • Vou postar um exemplo, apesar da data inicial desta postagem.

    No Code-Behind do UserControl
            // Criação da delegação e definição dos argumentos do evento
            public delegate void ClicarNoBotao(object sende, DateTime dataDoClique);
    
            // Criação do Evento Personalizado
            public event ClicarNoBotao ClickBotao;
    
            // Método para quando o usuário clica no botão
            protected void Button1_Click(object sender, EventArgs e)
            {
                // Verificação se o evento "ClickBotao" foi definido
                if (this.ClickBotao != null)
                {
                    // Caso tenha sido definido, chama o evento
                    // passando os argumentos necessários
                    this.ClickBotao(sender, DateTime.Now);
                }
            }
    

    Conteúdo do UserControl ( HTML )
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Evento Personalizado" />

    Em uma página qualquer do meu Site
    <!--  este fica no topo da página  -->
    <%@ Register Src="userControls/CustomDelegateUserControl.ascx" TagName="CustomDelegateUserControl"
        TagPrefix="uc1" %>
    
    
    <!--  Este fica no lugar em que for necessário  -->
    <uc1:CustomDelegateUserControl id="CustomDelegateUserControl1" runat="server">
    </uc1:CustomDelegateUserControl>

    No código desta mesma página escolhida
            protected void Page_Load(object sender, EventArgs e)
            {
                // Indicado ao "UserControl" qual deverá ser o método 
                // chamado neste evento
                this.CustomDelegateUserControl1.ClickBotao += new WebApplication1.userControls.CustomDelegateUserControl.ClicarNoBotao(CustomDelegateUserControl1_ClickBotao);
            }
    
            // método criado para capturar a execução do evento
            // disparado pelo UserControl
            void CustomDelegateUserControl1_ClickBotao(object sende, DateTime dataDoClique)
            {
                // qualquer coisa que você quiser fazer
                // ficará aki dentro.
            }
    


    Espero ter ajudado a quem estivesse precisando de um "exemplo".

    Boa sorte a todos e, qualquer dúvida, posta aqui para que possamos te ajudar.

    Qualquer duvida, posta aqui para que possamos te ajudar.
    Rafael F. P.
    MTS em Aplicações WEB c/ .NET 2.0

    Se a resposta de alguém foi útil, marque a resposta como tal.
    Se alguém conseguiu te ajudar, poderia marcar como "Respondido" ?
    Obs: Resposta útil é diferente de resposta final.

    Grato. :)
    quinta-feira, 13 de agosto de 2009 15:40
  • Olá Antonio, como vai ? Se possível marque a resposta que lhe ajudou a resolver seu prblema para que outros usuários no fórum ao pesquisar encontrem um caminho a solução ;-)

    Abraços
    att,


    Felipe Oriani - www.felipeoriani.com.br

    ...O rio atinge os seu objetivos porque aprendeu a contornas os obstáculos... por André Luiz
    quinta-feira, 13 de agosto de 2009 16:31
  • Estou justamente com esse problema e o colega infelizmente não quis postar a solução.
    quinta-feira, 13 de outubro de 2011 13:03