Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Adicionando Trigger no UpdatePanel


VB6DeveloperJr

Pergunta

Pessoal, tenho um gridview,

<asp:GridView ID="gdvCanais" runat="server" AllowPaging="True" 
                                        AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" 
                                        GridLines="Horizontal" onpageindexchanging="gdvCanais_PageIndexChanging" 
                                        DataKeyNames="SERV_ID,CAMINHO" onrowdatabound="gdvCanais_RowDataBound" 
                                        PageSize="15" Width="769px" onrowcommand="gdvCanais_RowCommand">
                                        <Columns>
                                            <asp:TemplateField HeaderText="Status">
                                                <ItemTemplate>
                                                    <asp:ImageButton ID="imgStatus" runat="server" CommandArgument = '<%# Eval("CANAL") %>' />
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                        </Columns>
                                    </asp:GridView>

e preciso que o ItemTemplate = 'imgStatus' trabalhe como uma Trigger dentro do UpdatePanel, é possível fazer isso??

Obrigado.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

quintelab, eu entendi o conceito para adicionar trigger de um controle normal em tela, porém ainda não consegui adicionar uma trigger um ImageButton dentro do ItemTemplate de um GridView, não sei se para isso é necessario fazer pelo Code-Behind no evento RowDataBound assim:

protected void gdv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                ImageButton btnStatus= new ImageButton();

                btnStatus = (ImageButton)e.Row.FindControl("imgStatus");

                if (btnStatus!= null)
                {
                    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();

                    trigger.ControlID = "btnStatus";
                    //trigger.EventName = "Click";
                    UpdatePanel1.Triggers.Add(trigger);

                    if (status == 1 )
                    {
                        btnStatus.ImageUrl = "/App_Themes/Imagens/status.png";
                    }
                    else
                    {
                        btnStatus.Visible = false;
                    }
                }
            }
        }
ou simplesmente no Aspx :
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode ="Conditional" >
                                    <Triggers>
                                        <asp:PostBackTrigger ControlID = "imgStatus"/>
                                    </Triggers>
                                    <ContentTemplate>
                                 <asp:GridView ID="gdvCanais" runat="server" AllowPaging="True" 
                                        AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" 
                                        GridLines="Horizontal" onpageindexchanging="gdvCanais_PageIndexChanging" 
                                        DataKeyNames="SERV_ID,CAMINHO" onrowdatabound="gdvCanais_RowDataBound" 
                                        PageSize="15" Width="769px" onrowcommand="gdvCanais_RowCommand">
                                        <Columns>
                                            <asp:TemplateField HeaderText="Status">
                                                <ItemTemplate>
                                                    <asp:ImageButton ID="imgStatus" runat="server" CommandArgument = '<%Eval("CANAL")%>' />
                                                </ItemTemplate>
                                            </asp:TemplateField>
                                        </Columns>
                                    </asp:GridView>
                                    </ContentTemplate>
                                    </asp:UpdatePanel>
Colocando direto no Aspx aparece o erro:
A control with ID 'imgStatus' could not be found for the trigger in UpdatePanel 'UpdatePanel1'.

Enfim, alguma ideia?

Editado por VB6DeveloperJr
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, desculpem eu não havia pesquisado direito antes de postar, a resolução para o meu problema:

http://sites.google.com/site/arlen4mysite/...k-for-templatef

A unica coisa que acontece agora, é que eu preciso esperar cerca de 3 seg. para clicar novamente no TemplateField, senão não ocorre o PostBack, vai entender esse UpdatePanel não é? talvez seja porque estou usando um Timer de 1,5 seg na pagina <_<

Obrigado pela ajuda!!!

Editado por VB6DeveloperJr
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...