WebPart.Height Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define a altura de uma zona.
public:
virtual property System::Web::UI::WebControls::Unit Height { System::Web::UI::WebControls::Unit get(); void set(System::Web::UI::WebControls::Unit value); };
[System.Web.UI.WebControls.WebParts.Personalizable]
public override System.Web.UI.WebControls.Unit Height { get; set; }
[<System.Web.UI.WebControls.WebParts.Personalizable>]
member this.Height : System.Web.UI.WebControls.Unit with get, set
Public Overrides Property Height As Unit
Valor de Propriedade
Um Unit objeto que indica a altura de um WebPartZone. O tipo padrão de a Unit é pixels, conforme indicado pela Type propriedade.
- Atributos
Exemplos
O exemplo de código seguinte demonstra o problema de renderização que afeta a altura dos WebPart controlos num WebPartZone. Para demonstrar este problema, deve executar a página no Internet Explorer.
Note que a orientação da zona está definida para horizontal, e que a altura da zona e os controlos dentro dela não estão explicitamente definidos. O resultado é que no WebPartZone, o controlo mais WebPart curto não se estende até à altura da zona durante a renderização. No entanto, se remover a DOCTYPE declaração da página e a executar novamente, o problema não ocorre, porque agora o navegador não irá renderizar a página em modo standard.
<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
wpmgr.DisplayMode = WebPartManager.DesignDisplayMode;
}
protected void Button2_Click(object sender, EventArgs e)
{
wpmgr.DisplayMode = WebPartManager.BrowseDisplayMode;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="wpmgr" runat="server" />
<asp:webpartzone id="WebPartZone1" runat="server"
layoutorientation="horizontal">
<zonetemplate>
<asp:textbox id="TextBox1" runat="server" title="Text input">
</asp:textbox>
<asp:calendar id="Calendar1" runat="server" title="Personal Calendar" />
</zonetemplate>
</asp:webpartzone>
<asp:button id="Button1" runat="server" text="Design Mode"
onclick="Button1_Click" />
<br />
<asp:button id="Button2" runat="server" onclick="Button2_Click"
text="Browse Mode" />
</form>
</body>
</html>
<%@ Page Language="VB"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
wpmgr.DisplayMode = WebPartManager.DesignDisplayMode
End Sub
Protected Sub Button2_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
wpmgr.DisplayMode = WebPartManager.BrowseDisplayMode
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="wpmgr" runat="server" />
<asp:webpartzone id="WebPartZone1" runat="server"
layoutorientation="horizontal">
<zonetemplate>
<asp:textbox id="TextBox1" runat="server" title="Text input">
</asp:textbox>
<asp:calendar id="Calendar1" runat="server" title="Personal Calendar" />
</zonetemplate>
</asp:webpartzone>
<asp:button id="Button1" runat="server" text="Design Mode"
onclick="Button1_Click" />
<br />
<asp:button id="Button2" runat="server" onclick="Button2_Click"
text="Browse Mode" />
</form>
</body>
</html>
Para ver como funciona a solução alternativa (descrita na secção de Observações), tente adicionar um height atributo ao <asp:webpartzone> elemento, mantendo a DOCTYPE declaração na página. Pode usar o seguinte código para adicionar o atributo à etiqueta:
Height="200px"
Executa a página, e agora ambos WebPart os controlos esticam para preencher a altura explicitamente declarada da zona.
Também pode experimentar este exemplo de código para observar o problema de renderização relacionado com a altura no outro cenário, que ocorre quando a zona LayoutOrientation está definida para Vertical. Remova o atributo existente LayoutOrientation e o seu valor do <asp:webpartzone> elemento, o que fará com que a orientação da zona volte à orientação vertical padrão. Define o atributo altura do <asp:webpartzone> elemento para 200 pixels, como fizeste acima, e executa a página. A altura da zona parece demasiado grande e os controlos não são dimensionados proporcionalmente à altura da zona. Agora remove o atributo height e executa a página novamente. Os controlos agora são renderizados em relação à altura da zona.
Observações
Internet Explorer modos de renderização podem afetar a altura de um controlo WebPart e a altura da zona que o contém. Internet Explorer renderiza páginas Web quer em modo de compatibilidade (compatível retrocedível com versões anteriores do navegador) quer em modo standard (determinado pela presença de uma declaração DOCTYPE na página). Para informações sobre estes modos, consulte a propriedade DHTML compatMode .
Quando Internet Explorer renderiza uma página em modo standard, em algumas circunstâncias pode não redimensionar as células das tabelas, mesmo quando a marcação HTML de uma célula é <td height="100%">. Como resultado, WebPart os controlos e a sua zona de contenção são renderizados de modo a que os controlos não se estendam até à altura total da zona.
Quando o Internet Explorer está em modo standard, os controlos não são renderizados para se esticar até à sua altura total nos seguintes casos:
Quando a LayoutOrientation propriedade de uma zona está definida para Vertical e tu defines explicitamente a altura na zona. Para permitir que os controlos preencham a altura total da zona, não especifique a altura de uma zona orientada horizontalmente.
Quando a LayoutOrientation propriedade de uma zona está definida para Horizontal e não defines explicitamente a altura da zona ou dos controlos contidos. Para permitir que os controlos ocupem toda a altura da zona, defina a altura da zona ou dos controlos numa zona orientada verticalmente.