为什么100%不能与tablecells中的面板一起使用?

时间:2011-11-10 13:28:19

标签: asp.net panel tablecell

我将一个面板放在一个tablecell中,并将width和height属性设置为 100%,以使面板占据tablecell的100%空间,但当我这样做时面板消失了。 只有当我将面板宽度和高度属性设置为 100px 时,才会显示它。 那么如何将面板设置为始终占据其所在表格单元的100%?

在此示例中,面板不显示:

<asp:Table runat="server" ID="mainTable" Width="100%" Height="100%" BorderColor="Red" BorderWidth="20px" BorderStyle="Solid">
    <asp:TableRow runat="server" ID="mainRow" Width="100%" Height="100%" BorderColor="Purple" BorderWidth="20px" BorderStyle="Solid">
        <asp:TableCell runat="server" ID="maincell" Width="30%" Height="100%" BorderColor="AliceBlue" BorderWidth="20px" BorderStyle="Solid">
            <asp:Panel runat="server" ID="mainpanel" Width="100%" Height="100%" BackColor="Gainsboro"></asp:Panel>
        </asp:TableCell>
        <asp:TableCell runat="server" ID="TableCell1" Width="30%" Height="100%" BorderColor="AliceBlue" BorderWidth="20px" BorderStyle="Solid">
            <asp:Panel runat="server" ID="Panel1" Width="100%" Height="100%" BackColor="Gainsboro"></asp:Panel>
        </asp:TableCell>
        <asp:TableCell runat="server" ID="TableCell2" Width="30%" Height="100%" BorderColor="AliceBlue" BorderWidth="20px" BorderStyle="Solid">
            <asp:Panel runat="server" ID="Panel2" Width="100%" Height="100%" BackColor="Gainsboro"></asp:Panel>
        </asp:TableCell>
    </asp:TableRow>
</asp:table>

我将一个面板放在单元格中,因为我想稍后将控件放在其中。

3 个答案:

答案 0 :(得分:0)

您需要指定一个单位类型,因为它默认为像素(显然)。我无法找到如何在标记中指定它,因此无法提供帮助。

此问题存在类似问题:aspnet table - specify TableCell width?

他们建议改用CSS。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.width.aspx#Y0

webControl.width = Unit.Percentage(100)应该可以工作,再次不确定你把它放在哪里,因为我不做ASP。

答案 1 :(得分:0)

我认为这是由于浏览器的缺陷/优化造成的。网页呈现为正确的html,但是当浏览器呈现页面时,它将跳过/删除空div。因此,如果您将某种内容插入其中一个div,例如&amp; nbsp;浏览器将正确渲染div。

答案 2 :(得分:0)

style="empty-cells: show"放在TableCell上,IE7和FF正确渲染它,但在IE9中确实占用空间而不是背景颜色

        <asp:TableCell runat="server" ID="maincell" Width="30%" Height="100%" BorderColor="AliceBlue"
            BorderWidth="20px" BorderStyle="Solid" style="empty-cells: show">
            <asp:Panel runat="server" ID="mainpanel" Width="100%" Height="100%" BackColor="Gainsboro">
            </asp:Panel>
        </asp:TableCell>

在css中玩游戏并为每个浏览器设置正确的样式。这是多么累人。 :/