チェックボックスのセットをレンダリングする Horizontal Flow に設定された DataList があります。データリストの最後の時間と同じ行に、データリストの最後にレンダリングしたいドロップダウンリストもあります。
ドロップダウンがデータリストの下の行にレンダリングされないように、データリストの最後にある最後の改行を取り除くことは可能ですか?
[] i1 [] i2 [] i3 [] i4
[] i5 [] i6 DropDownList
そうではないと思います。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;
}
}
アイテムが作成またはバインドされたときにドロップダウンリストをコントロールコレクションに挿入しようとすることができると思いますが、それが最後のものであることを知る必要があります。これには、データ バインドを行う前に、合計数を事前に把握しておく必要があります。