DataList - можете ли вы остановить последний разрыв строки, чтобы элемент управления передавался рядом с концом - PullRequest
0 голосов
/ 01 апреля 2009

У меня есть DataList, для которого установлено значение «Горизонтальный поток», которое отображает набор флажков. У меня также есть выпадающий список, который я хотел бы отобразить в конце списка данных в той же строке, что и в последний раз в списке данных.

Можно ли избавиться от последнего разрыва строки в конце списка данных, чтобы раскрывающийся список не отображался на строке ниже списка данных?

[] i1 [] i2 [] i3 [] i4
[] i5 [] i6 DropDownList

1 Ответ

0 голосов
/ 01 апреля 2009

Боюсь, что нет. Код рендеринга для RepeatInfo (который используется для рендеринга DataList) явно записывает разрыв строки, когда для макета установлено горизонтальное течение, а элемент находится на границе столбца или является последним в списке. Вот та часть кода:

private void RenderHorizontalRepeater(HtmlTextWriter writer, IRepeatInfoUser user, Style controlStyle, WebControl baseControl)
{
    ...
    if (indexInColumn == repeatColumns || itemIndex == repeatedItemCount - 1)
    {
        if (isTableLayout)
        {
            writer.RenderEndTag();
        }
        else if (repeatColumns < repeatedItemCount)
        {
            if (this.EnableLegacyRendering)
            {
                writer.WriteObsoleteBreak();
            }
            else
            {
                writer.WriteBreak();
            }
        }
        indexInColumn = 0;
    }
}

Полагаю, вы могли бы попытаться добавить выпадающий список в коллекцию элементов управления при создании или привязке элемента, но тогда вам придется знать, что это последний элемент. Для этого необходимо заранее знать общее количество, прежде чем связывать данные.

...