最近搜索这个并没有找到一个合理的解决方案,所以我只用 CSS 创建了一个。我从 ListBox 切换到 CheckBoxList 并隐藏了复选框。
在这个例子中,为了简单起见,我只是让所有项目的复选框不可见(CSS 中的选项),并将所选项目的同级文本 font-weight 设置为 600(CSS 中的标签) - 您可以根据自己的意愿使用 CSS 一次您正确设置了选择器 - 背景、伪:在图像或边框之前等。请记住,如果您在项目之前使用某些东西,您可能会创建间距问题 - 我将包含一个 CSS 示例(在第一个示例之后)用于“未选中”项目,因此您可以添加填充/边距来弥补此偏移量。有很多方法可以做到这一点,但这会让你到达那里,直到你想探索其他选择。
ASPX:
<asp:CheckBoxList ID="chkList" CssClass="someclassname" runat="server" </asp:CheckBoxList>
CSS:
.someclassname input {display: none;}
.someclasssname input:checked + label {font-weight: 600;}
就我个人而言,我更喜欢 CSS 的换行和缩进,但如果没有,这里更容易阅读。
这是其他未选中项目的 CSS 选择器。
CSS:
.someclass input:not(:checked) + label {font-weight: 400;}
同样,我们隐藏了复选框,然后格式化复选框右侧的文本。这里的另一个不错的功能是,现在用户可以使用基于触摸的输入设备选择多个项目 - 无需 ctrl 或空格键。
此外,与 ListBox 不同的是,CheckBoxList 不允许您将用户限制为一个选择。如果您需要这种行为,那么您可以切换到 RadioButtonList。