WebPart.Height Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 da propriedade
Um Unit objeto que indica a altura de um WebPartZone. O tipo padrão de um Unit é pixels, conforme indicado pela Type propriedade.
- Atributos
Exemplos
O exemplo de código a seguir demonstra o problema de renderização que afeta a altura dos WebPart controles em um WebPartZone. Para demonstrar esse problema, você deve executar a página no Internet Explorer.
Observe que a orientação da zona está definida como horizontal e que a altura da zona e os controles dentro dela não estão definidos explicitamente. O resultado é que, no WebPartZone, o controle mais curto WebPart não se estende até a altura da zona após a renderização. No entanto, se você remover a DOCTYPE
declaração da página e executar a página novamente, o problema não ocorrerá, pois agora o navegador não renderizará a página no modo de padrões.
<%@ 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 seção Comentários), tente adicionar um height
atributo ao <asp:webpartzone>
elemento, mantendo a DOCTYPE
declaração na página. Você pode usar o seguinte código para adicionar o atributo à marca:
Height="200px"
Execute a página e agora ambos os WebPart controles se estendem para preencher a altura declarada explicitamente da zona.
Você também pode experimentar esse exemplo de código para observar o problema de renderização relacionado à altura no outro cenário, que ocorre quando a zona LayoutOrientation é definida como Vertical. Remova o atributo existente LayoutOrientation
e seu valor do elemento, o <asp:webpartzone>
que fará com que a orientação da zona seja revertida para a orientação vertical padrão. Defina o atributo de altura no <asp:webpartzone>
elemento como 200 pixels, como você fez acima, e execute a página. A altura da zona parece muito grande e os controles não são dimensionados proporcionalmente à altura da zona. Agora remova o atributo de altura e execute a página novamente. Os controles agora são renderizados em relação à altura da zona.
Comentários
Os modos de renderização do Internet Explorer podem afetar a altura de um WebPart controle e a altura da zona que a contém. O Internet Explorer renderiza páginas da Web no modo de compatibilidade (compatível com versões anteriores do navegador) ou no modo de padrões (determinado pela presença de uma DOCTYPE
declaração na página). Para obter informações sobre esses modos, consulte a propriedade DHTML compatMode .
Quando o Internet Explorer renderiza uma página no modo de padrões, em algumas circunstâncias, ela pode não redimensionar células em tabelas, mesmo quando a marcação HTML de uma célula é <td height="100%">
. Como resultado, WebPart os controles e sua zona de contenção são renderizados para que os controles não se estendam até a altura total da zona.
Quando o Internet Explorer está no modo padrão, os controles não são renderizados para se estender até a altura total nos seguintes casos:
Quando a propriedade de LayoutOrientation uma zona é definida Vertical como e você define explicitamente a altura na zona. Para permitir que os controles preencham a altura completa da zona, não especifique a altura de uma zona orientada horizontalmente.
Quando a propriedade de LayoutOrientation uma zona é definida Horizontal como e você não define explicitamente a altura da zona ou dos controles contidos. Para permitir que os controles preencham a altura total da zona, defina a altura da zona ou dos controles em uma zona orientada verticalmente.