DataList - 您可以停止最后一个换行符,以便控件将在结尾处流动

时间:2009-04-01 09:55:45

标签: asp.net rendering datalist

我有一个DataList,它被设置为Horizo​​ntal Flow,它呈现一组复选框。我还有一个下拉列表,我想在数据列表的末尾呈现,与上一次在datalist中的行相同。

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

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

1 个答案:

答案 0 :(得分: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;
    }
}

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