2016-04-07 4 views
0

私は、かなり特殊な外観のチェックボックスリストを動的に作成しようとしています。 このコードは正しくCheckBoxListのが追加されますが、間隔がすべて間違っている:スペースチェックボックスリストのラベル

foreach (string s in fieldTypes) 
{ 
    dt = sqlDataLayer.getInterpretationField(Guid.Parse(id), s); 
    CheckBoxList cbl = new CheckBoxList(); 
    foreach (DataRow dr in dt.Rows) 
    { 
     string fieldName = dr["fieldName"].ToString(); 
     string displayName = dr["displayName"].ToString(); 
     string spacer = ""; 
     int length = fieldName.Length + displayName.Length; 
     length = 50 - length; 
     for (int i = 0; i < length; i++) 
     { 
      spacer += "&nbsp;"; 
     } 
     cbl.Items.Add(new ListItem(fieldName+spacer+displayName)); 
    } 
    dvContent.Controls.Add(cbl); 
    break; //This is just because I just wanna test one loop.. I'll remove it later 
} 

望ましい結果:どのよう

[ ] Test   Test 
[ ] LongerTest  Test  //These aren't the exact values and lengths, 
[ ] MuchLongerTest LongerTest //but it's roughly my result. 

を:私は取得しています何

[ ] Test   Test 
[ ] LongerTest  Test 
[ ] MuchLongerTest LongerTest 

私は右の間隔を得ることができますか? 2つのラベルを持つListItemを追加する方法はありますか?いくつかの他のアプローチ?

答えて

3

2つの解決策があります。

  1. は、あなたがコントロールは、CheckBoxListのから継承書くとRenderControl

  2. GridViewの/リピータと列を使用して、またはmanyCheckBoxesでのCheckBoxListを置き換えをオーバーライドあなたのレイアウトを定義することができますそれらを所望の構造に置く。

+0

私はオプションnr2に行った。ありがとう=) –