Создать панель Autosizeble с панелями внутри - PullRequest
1 голос
/ 04 июня 2010

Извините за не очень четкое название вопроса, но, возможно, изображение поможет описать мою проблему:

изображение http://my.jetscreenshot.com/2951/20100604-ioyo-164kb.jpg

Я хочу, чтобы маленькие дочерние панели в родительской панели были автоматически изменяемыми. Вот моя разметка и код:

    protected void Page_Load(object sender, EventArgs e)
        {
            var bkg = new[] { "background-color: wheat;", "background-color: gray;", "background-color: #AAAAAA;" };
            var random = new Random();
            for (var i = 0; i < 285; i++)
            {
                var panel = new Panel
                                {
                                    Header = false,
                                    Width = 60,
                                    Height = 30,
                                    BodyStyle = bkg[random.Next(0, 3)],
                                    Frame = false,
                                    StyleSpec = "padding-top: 1px; padding-left: 1px;",
                                    ID = "panel_" + i,
                                    Html = string.Format("<span class='x-unselectable'>{0}</span>", i)
                                };
                var cell = new Cell();
                cell.Items.Add(panel);
                TableLayout1.Cells.Add(cell);
            }

        }

<ext:Panel ID="pnlWorkArea" runat="server" Title="Test">
    <Body>
        <ext:TableLayout ID="TableLayout1" runat="server" Columns="15">
        </ext:TableLayout>
    </Body>
</ext:Panel>

1 Ответ

1 голос
/ 04 июня 2010

Если вы хотите, чтобы расположение дочерних панелей полностью заполняло центральную область, не существует простого способа сделать это, кроме вычисления внутренних размеров области, а затем присвоения фиксированной высоты / ширины дочерним панелям по мересейчас, но на основе ваших измерений.Вы можете сделать это либо обработав событие render, либо переопределив onRender центральной панели области.

Если количество строк и столбцов всегда одинаково, вы можете попробовать использовать% измерений, но в моем случаеопыт, который не работает согласованно во всех браузерах (иногда вы можете получить небольшие пропуски из-за округления от десятичного процента до пикселей).

...