0

動的に作成され、ユーザーのリストを含むドロップダウンリストがあります。ユーザーが特定の条件を満たしている場合は、スタイル属性を適用してユーザーを強調表示します。リストの最初のアイテムを除いて、すべてのリストアイテムが正しく強調表示されます。これは、最初のものがこのように動作し、他のものとは異なるというのは奇妙に思えます。

    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 に答える