Qual é a diferença entre <asp:Panel >
e <asp:PlaceHolder >
no ASP.NET?
Quando você deve usar um sobre o outro?
asp.net
panel
placeholder
p.campbell
fonte
fonte
O espaço reservado não renderiza nenhuma tag para si mesmo, portanto, é ótimo para agrupar conteúdo sem a sobrecarga de tags HTML externas.
O Painel possui tags HTML externas, mas possui algumas propriedades extras interessantes.
BackImageUrl: obtém / define o URL da imagem de plano de fundo do painel
HorizontalAlign: Obtém / Define o
alinhamento horizontal do conteúdo do pai
conteúdo do painel é agrupado
Há um bom artigo no startvbnet aqui .
fonte
Controle PlaceHolder
Use o controle PlaceHolder como um contêiner para armazenar controles de servidor que são adicionados dinamicamente à página da Web. O controle PlaceHolder não produz nenhuma saída visível e é usado apenas como um contêiner para outros controles na página da Web. Você pode usar a
Control.Controls
coleção para adicionar, inserir ou remover um controle no controle PlaceHolder.Painel de controle
O controle Panel é um contêiner para outros controles . É especialmente útil quando você deseja gerar controles programaticamente, ocultar / mostrar um grupo de controles ou localizar um grupo de controles.
A
Direction
propriedade é útil para localizar o conteúdo de um controle Panel para exibir texto para idiomas escritos da direita para a esquerda, como árabe ou hebraico.O controle Panel fornece várias propriedades que permitem personalizar o comportamento e a exibição de seu conteúdo. Use a
BackImageUr
propriedade l para exibir uma imagem personalizada para o controle Panel. Use aScrollBars
propriedade para especificar barras de rolagem para o controle.Pequenas diferenças ao renderizar HTML: um controle PlaceHolder renderizará nada, mas o controle Panel será renderizado como a
<div>
.Mais informações nos fóruns do ASP.NET
fonte
Eu bug estranho * no visual studio 2010, se você colocar controles dentro de um espaço reservado, ele não os renderiza no modo de exibição de design.
Isto é especialmente verdade para os rótulos Hidenfields e Empty.
Eu adoraria usar espaços reservados em vez de painéis, mas odeio o fato de não poder colocar outros controles dentro de espaços reservados em tempo de design na GUI.
fonte
Como mencionado em outras respostas, o Painel gera um
<div>
em HTML, enquanto o PlaceHolder não. Mas há muitas outras razões pelas quais você pode escolher uma delas.Por que um PlaceHolder?
Como ele não gera nenhuma tag própria, você pode usá-lo com segurança dentro de outro elemento que não possa conter um
<div>
, por exemplo:Você também pode usar um PlaceHolder para controlar a Visibilidade de um grupo de Controles sem envolvê-lo em um
<div>
Por que um painel
Ele gera o seu próprio
<div>
e também pode ser usado para agrupar um grupo de controles. Mas um painel tem muito mais propriedades que podem ser úteis para formatar seu conteúdo:Mas o recurso mais útil é a
DefaultButton
propriedade Quando o ID corresponde a um botão no painel, ele aciona uma postagem de formulário com validação quandoenter
pressionada dentro de uma caixa de texto. Agora, um usuário pode enviar o formulário sem pressionar o botão.Experimente o trecho acima pressionando
enter
dentroTextBox1
fonte