我在aspx上有一个复选框列表
<asp:CheckBoxList ID="cblCalendarFilter" runat="server" />
我从后面的代码中添加了listItems。
newCkItm = new ListItem();
newCkItm.Text = childrenFoldersData[i].Description.Trim();
newCkItm.Value = childrenFoldersData[i].Id.ToString().Trim();
newCkItm.Selected = true;
我可以通过
添加ListItem的背景newCkItm.Attributes.Add("style", "background-color:Red;");
不同项目的颜色会有所不同,项目名称也会有所不同。所以,问题是背景颜色只覆盖文本长度。背景颜色未针对所有项目对齐。我检查了检查员,发现了......
<span>
<td>
。我想知道是否有办法将这种风格应用于<td>
而不费力气。我宁愿不通过搜索名称来使用jquery和javascript。
有没有办法做到这一点??
答案 0 :(得分:1)
我试过并找到了这个解决方案&amp;它对我有用。
尝试给予填充权限 例如:
newCkItm.Attributes.Add("style", "background-color:Red;padding-right:30px");
答案 1 :(得分:0)
如果您使用其中包含CheckBox
的tr / td的Repeater并在可以检索td的ItemDataBound
事件上执行逻辑,那该怎么样:
<table>
<asp:Repeater ID="rpt" runat="server" OnItemDataBound="rpt_ItemDataBound">
<ItemTemplate>
<tr>
<td id="myTd" runat="server">
<asp:CheckBox runat="server" ID="myCheckBox" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
答案 2 :(得分:0)
我认为没有别的方法,你必须单独访问元素并将css分配给项目。我倾向于使用foreach循环,访问项目并添加属性。 TBH,除了我需要一些额外的功能外,我会留在checkboxlist与repeater相比,
答案 3 :(得分:0)
我没有为每个项目添加样式属性,而是因为你提到每个项目需要不同的背景颜色,我会添加一个id属性:
newCkItm.Attributes.Add("id", "alpha");
这样,您可以将所有样式与代码分开,而不必在每次需要调整CSS时重新编译等。
使用<asp:CheckBoxList />
CSS本身看起来像这样:
#cblCalendarFilter {
border:none;
border-collapse:collapse;
}
#cblCalendarFilter td {
padding:0;
}
#cblCalendarFilter span {
display:block;
padding:2px;
}
#cblCalendarFilter #alpha {
background:red;
}
#cblCalendarFilter #beta {
background:yellow;
}
希望制作跨度块级别将解决您只使用覆盖文本长度的背景颜色所带来的问题。