我将一个面板放在一个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>
我将一个面板放在单元格中,因为我想稍后将控件放在其中。
答案 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中玩游戏并为每个浏览器设置正确的样式。这是多么累人。 :/