Почему 100% не работает с панелями внутри ячеек? - PullRequest
0 голосов
/ 10 ноября 2011

Я поместил панель внутри ячейки таблицы и установил для свойств ширины и высоты значение 100% , чтобы панель заняла 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 голосов
/ 10 ноября 2011

Я думаю, это связано с недостатком / оптимизацией в браузере. Веб-страница отображается в правильном HTML-формате, но когда браузер отображает страницу, он пропускает / удаляет пустые элементы div. Так что если вы вставляете какой-либо контент в один из элементов типа div & nbsp; браузер будет правильно отображать div.

0 голосов
/ 10 ноября 2011

помещая 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 и устанавливает правильный стиль длякаждый браузер.вот как это утомительно.: /

0 голосов
/ 10 ноября 2011

Вам необходимо указать тип модуля, так как он по умолчанию равен пикселям (по-видимому).Я не могу узнать, как указать это в разметке, поэтому не могу помочь.

Этот вопрос имеет похожую проблему: Таблица aspnet - укажите ширину TableCell?

Они предлагают использоватьВместо этого CSS.

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

webControl.width = Unit.Percentage (100) должен работать, опять же не уверен, куда вы положите это, поскольку я не делаю ASP.

...