none
Erro - 'ImageButton' deve ser inserido em uma marca de formato com runat=server. RRS feed

  • Pergunta

  • Boa tarde amigos,

    Estou desenvolvendo uma galeria de fotos em asp.net C#, com o seguinte raciocínio:

    Crio um diretório “Albuns” com “n” pastas, cada pasta seria um álbum onde a primeira imagem encontrada dentro de cada pasta se torna a capa do álbum. Até ai tudo em ordem =)

    Após capturar essas informações, eu alimento uma Table  com um Image (Capa do Album) e um Label (Descrição do Album). Até ai tudo funcionou perfeitamente. Porém tive a necessidade de alterar o Image por um ImageButton, já que ao clicar na imagem será necessário direcionar para a próxima página.

    O problema é que ao executar minha página, é disparada a seguinte exceção:

    Controle 'ContentPlaceHolder1_ctl00' do tipo 'ImageButton' deve ser inserido em uma marca de formato com runat=server.

    Sendo que a minha página de produtos está da seguinte maneira:

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Produtos.aspx.cs" Inherits="Produtos" %>

    <asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">

        <div id="content" style="width: 685px; height: auto" runat="server">

            <h1>Produtos</h1>

            <p>Abaixo você pode conferir alguns de nossos produtos.</p>

            <p>

                <asp:Table ID="tblAlbuns" runat="server" Width="631px" BorderStyle="None">

                </asp:Table>

            </p>

        </div>

    </asp:Content>

    O Componente ImageButton eu crio pelo Code-Behind no foreach que lista as imagens nos diretórios, sendo que com o componente Image funcionava perfeitamente.

    Alguém sabe o que posso estar fazendo de errado? Ou alguma dica que melhore meu raciocínio?

    Obrigado pessoal. Até mãos, abraços.

    domingo, 20 de janeiro de 2013 18:38

Todas as Respostas

  •             ImageButton = new ImageButton();
                lb.ID = "LinkButton1";
                lb.OnClientClick = "test";
                lb.Text = "testtext";
                lb.Attributes.Add("runat", "server");

    Tente Isso


    Se a resposta foi útil por favor qualifique. Italo Biguzi Duarte, Desenvolvedor ASP.NET C#, Italo.biguzzi@gmail.com

    se eu não me engano todos os componetes ASP.NET necessitam da TAG Runat='Server' pois os mesmo rodam no lado servidor.

    segunda-feira, 21 de janeiro de 2013 10:14
  • Não deu certo também, engraçado se eu copiar este código em uma pagina em branco o erro não ocorre, acredito que o erro esteja em outra parte do formulário.

    Mas ok, estava com tempo limitado para entregar esta galeria, resolvi entregar em php mesmo.

    Obrigado.

    até mais


    sexta-feira, 25 de janeiro de 2013 09:46