我从后面的代码中动态创建了一个复选框,该复选框在我的Webform asp.net项目中带有一个长标签。当文本换行时,新行将直接在复选框本身下方开始。如何动态设置复选框,以便在需要时自动缩进新行。并非所有动态创建的复选框都带有长标签。
这是我创建该复选框的代码:
MyObject obj = SetNewObject("Supervisor");
CheckBox objCheck6 = new CheckBox();
objCheck6.ID = obj.GetFieldValue("Name");
objCheck6.Text = GetControlTitle("Supervisor");
objCheck6.Checked = obj.GetFieldValue("Value").ToLower() == "true";
tableCell1.Controls.Add(objCheck6);
我尝试了一些无效的方法。我尝试了以下内容,一次一次,但似乎对复选框或复选框的文本的影响都为零:
objCheck6.Style.Add("margin-left", "20px");
objCheck6.LabelAttributes.Add("margin-left", "20px");
objCheck6.TextAlign = TextAlign.Right;
objCheck6.TextAlign = TextAlign.Left;
朝正确方向的一点将不胜感激。谢谢!
答案 0 :(得分:1)
编辑css并添加它,以使复选框中的所有标签均受影响。
label{
display: block;
margin-top: -18px;
margin-left: 20px;
}
如果由于页面上有其他标签而导致问题,请命名该CSS类,然后将其动态添加到您的checkBox中,如下所示:
objCheck6.InputAttributes["class"] = "className";
更新
这也可以通过注释中提到的代码来实现:
objCheck6.LabelAttributes.Add("style", "display:block;margin-top:-18px;margin-left:20px;");
我以this question作为参考。