0

我有一个 DataList,它设置为水平流,它呈现一组复选框。我还有一个下拉列表,我想在数据列表的末尾呈现它,与数据列表中的最后一次位于同一行。

是否可以摆脱数据列表末尾的最后一个换行符,以便下拉列表不会呈现在数据列表下方的行上?

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

1 回答 1

0

恐怕不是。当布局设置为水平流且项目位于列边界或列表中的最后一个时,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;
    }
}

我想您可以尝试在创建或绑定项目时将下拉列表注入控件集合,但是您必须知道它是最后一个。这需要在进行数据绑定之前预先知道总计数。

于 2009-04-01T17:00:00.570 回答