间距checkboxlist标签

时间:2016-04-07 06:53:40

标签: c# asp.net checkboxlist spacing

我试图动态创建一个具有非常特定外观的复选框列表。 此代码正确添加了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
[ ] MuchLongerTest  LongerTest

我得到了什么:

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

如何才能使间距正确?有没有办法添加一个带有两个标签的ListItem?还有其他方法吗?

1 个答案:

答案 0 :(得分:3)

有两种解决方案:

  1. 您可以编写一个继承自CheckBoxList的控件并定义覆盖RenderControl的布局

  2. 用Gridview / Repeater替换CheckBoxList并使用列,或者使用manyCheckBox,并将它们放在所需的结构中。