2016-04-07 8 views
0

Ich versuche, eine Checkboxlist mit einem ganz bestimmten Aussehen dynamisch zu erstellen. Dieser Code fügt den Checkboxlist richtig, aber der Abstand ist alles falsch:Abstand checkboxlist label

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 
} 

Wunscher:

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

Was ich bekomme:

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

Wie kann ich den Abstand richtig bekommen? Gibt es eine Möglichkeit, ein ListItem mit zwei Labels hinzuzufügen? Ein anderer Ansatz?

Antwort

3

Es gibt zwei Lösungen:

  1. Sie können ein Steuerelement erbt von CheckBoxList schreiben und definieren Ihr Layout überschrieben Render

  2. Ersetzen Sie die CheckBoxList mit einem Gridview/Repeater und Spalten verwenden oder mit manyCheckBoxes Anche legte sie in die gewünschte Struktur.

+0

Ich ging mit der Option nr 2. Danke =) –