0

我有动态创建并包含用户列表的下拉列表。如果用户遇到某个我应用样式属性来突出显示用户。我的 ListItems 都将正确突出显示,除了 List 上的第一个。第一个会以这种方式行事并且与其他人不同,这似乎很奇怪。

    ddlSupervisorList.Items(ddlSupervisorList.Items.Count - 1).Attributes.CssStyle.Value = "background:#cc66ff;"

如果我选择另一个用户,新选择的用户仍将保持其突出显示,但第一个用户仍不会突出显示。

我什至尝试过执行以下操作:

If ddlSupervisorList.SelectedItem.Equals(ddlSupervisorList.Items(ddlSupervisorList.Items.Count - 1)) Then
   ddlSupervisorList.SelectedItem.Attributes.CssStyle.Value = "background:#cc66ff;"
End If

但它仍然不会在加载时突出显示第一项(默认项)。

4

2 回答 2

0

最终我使用了一些 JQuery 和 javascript 来解决这个问题。我拿起下拉列表 ID 并获得了选定的选项。如果它应该突出显示'availableSelected'是cssclass,那么我将它添加到下拉列表的列表行的css中。

var userClientId = '#<%= ddlSupervisorList.ClientID %>';
var selectedId = userClientId + ' option:selected';
function clientIdChanged() 
{
    if ($(selectedId).hasClass('availableSelected')) {
        $(userClientId).addClass('availableSelected');
    }
    else {
        $(userClientId).removeClass('availableSelected');
    }
}
$(document).ready(function() {
    clientIdChanged();
    $(userClientId).bind('change', clientIdChanged);
});
于 2012-07-11T19:27:51.113 回答
-1

如果它是动态生成的,请确保您没有将它放在 if(!page.IsPostBack) 中。在 page_load 上,您必须使用您想要的样式重新呈现下拉菜单。

于 2012-07-06T18:50:29.413 回答