0
<asp:ListBox 
     ID="ddlPA" 
     ClientIDMode="Static" 
     runat="server" 
     AutoPostBack="true"
     SkinID="x" 
     CssClass="ListBoxCssClass" 
     SelectionMode="Multiple" 
     OnSelectedIndexChanged="ddlPA_SelectedIndexChanged">
</asp:ListBox>

当我在 asp:listbox 中选择一个项目时,所选项目颜色变为灰色,我想将颜色更改为蓝色。我该怎么做?

4

2 回答 2

1

最近搜索这个并没有找到一个合理的解决方案,所以我只用 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。

于 2021-08-27T01:21:55.230 回答
0

您可以通过指定 CssClass 或 BackColor 属性从 .aspx 页面设置背景颜色。它看起来像:

<asp:ListBox CssClass="MyListBox" BackColor="#e0e0e0"></asp:ListBox>

设置选定的项目有点棘手......我不相信直接有这个属性。您可以在 javascript 或 jQuery 中设置它,例如:

<script type="text/javascript">
  $(document).ready(function() {
    $('#MyListBox').click(function() {
        $("#MyListBox option:selected").css("background-color", "#e0e0e0");
    }); 
  });
</script>
于 2013-03-25T07:17:27.060 回答