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

Link Em Uma Tabela Dinâmica


Guest JEFF_BA

Pergunta

tenho uma tabela que vai listar as imagens que o usuario fez upload. na tabela, ele tem a opcao de excluir as imagens. pra isso, criei um linkbutton pra cada imagem. ai tentei adicionar um novo evento para o LinkButton da seguinte forma:

lb.Click += new EventHandler(this.lb_Click);

isso pra cada linkbutton da tabela. ai eu saberia, quando ele chamasse a funcao, a qual linkbutton se referia pelo id do sender.

mas ele simplesmente não chama a funcao, quando clico no link. já pus uns responses.write pra testar e ele não escreve nd. simplesmente faz o postback mas não executa nenhum codigo. o codigo todo é esse:

foreach (string nome in imagens) //imagens é uma arraylist que guarda os nomes de todas as imagens.

{

HtmlTableRow tr = new HtmlTableRow();

HtmlTableCell td = new HtmlTableCell();

int ul = nome.IndexOf("_");

int pt = nome.IndexOf(".");

td.Attributes.Add("class", "tituloCampoLocal");

td.InnerHtml = nome.Substring(ul + 1, pt - ul - 1);

tr.Cells.Add(td);

td = new HtmlTableCell();

td.Attributes.Add("class", "tituloCampoLocal");

td.InnerHtml = "<a href = " + aspa + ConfigurationSettings.AppSettings["ImagesLoja"] + @"\Noticias\" +

nome + aspa + " target=" + aspa + "_blank" + aspa + ">" + nome + "</a>";

tr.Cells.Add(td);

LinkButton lb = new LinkButton();

lb.ID = "lnk" + nome;

lb.Text = "Excluir";

lb.Click += new EventHandler(this.lb_Click);

lb.Attributes.Add("onClick", "java script: return confirm('Deseja mesmo excluir a imagem?\\nIsso pode fazer com que a notícia não seja apresentada corretamente.')");

td = new HtmlTableCell();

td.Attributes.Add("class", "tituloCampoLocal");

td.Controls.Add(lb);

td.Align = "center";

tr.Cells.Add(td);

this.tblFiguras.Rows.Add(tr);

}

e a funcao que eu tento chamar é essa:

private void lb_Click(object sender, EventArgs e)

{

File.Delete(((LinkButton)sender).ID.Replace("lnk",""));

CarregaImagens();

}

esse negocio de new EventHandler funciona msmo?? já usei em Windows Application sem problema nenhum, mas parece que não da certo em Asp.NET, alguém sabe??

p.s.: Esse exemplo foi copiado de https://www.scriptbrasil.com.br/forum/lofiv...php/t86181.html, pois estou com o mesmo problema.

Grato,

JEFF_BA

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

você podia ter respondido la mesmo, mas beleza.

é, acho q isso não funciona mesmo em asp.net não... não consegui de jeito nenhum.

pelo q eu lembro o q eu fiz pra resolver foi usar um DataGrid em vez de montar a tabela. ai eu criei um novo DataTable e adicionei os dados da imagem e usei o evento ItemCommand do grid pra dar a resposta ao click do link.

EDITADO:

alias, to olhando agora meu codigo antigo, e to vendo q eu to usando o control HtmlTable e to lembrado agora q já tive otros problemas do tipo usando ele. se você tb ta usando o HtmlTable, tenta usar, no lugar dele o controle Table (System.Web.UI.WebControls.Table) e veja se da certo, ai posta ai falando se funcionou.

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

  • 0

Você poderia usar um GridView. Veja esse exemplo:

Tenho aqui um Grid com uma coluna que neste exemplo transformei em template e dentro do template coloquei um Hyperlink.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowHeader="False" Width="300px">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
Lá no codefile no método que trata o evento RowCreated do grid eu coloco o código:
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //Cria uma instancia do Hyperlink do seu gridview
            // Cells(numero da coluna) controls(numero do controle dentro da coluna)
            HyperLink hlPost = e.Row.Cells[0].Controls[0] as HyperLink;
            hlPost.NavigateUrl = "www.rudolfoborges.net";
        }
    }

Este método sempre resolveu meus problemas espero que seja util para você também

Abraço!!!

Editado por Rudolfo Borges
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...