2009-04-01 3 views
0

DataListを持っています。これは水平フローに設定され、一連のチェックボックスをレンダリングします。データリストの最後に、データリストの最後の行と同じ行に表示したいドロップダウンリストもあります。DataList - 最後の改行を停止して、コントロールが最後の横に流れるようにすることができます

データリストの最後に最後の改行を取り除くことができますので、ドロップダウンはデータリストの下の行に表示されませんか?

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

答えて

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; 
    } 
} 

私はあなたがアイテムを作成またはバインドされたときにコントロールコレクションにドロップダウンリストを注入しようとすることができたとしたが、その後、あなたはそれ最後のことを知っている必要があるだろう。これには、データのバインドを実行する前に、合計数を事前に把握する必要があります。

+0

ありがとうございました。最後に、データリスト内の列数属性を取り出し、n番目のItemIndexのItemDataBind内に改行を含むリテラルを追加しました – HadleyHope

関連する問題