2012-07-06 2 views
0

동적으로 생성되고 사용자 목록이 포함 된 드롭 다운 목록이 있습니다. 사용자가 특정 조건을 충족하면 스타일 속성을 적용하여 사용자를 강조 표시합니다. 내 ListItems는 목록의 첫 번째 항목을 제외한 모든 항목을 올바르게 강조 표시합니다. 이것은 첫 번째가 이런 식으로 행동하고 다른 것보다 다를 것이라고 이상하게 보입니다.드롭 다운 목록의 첫 번째 항목에서 속성이 손실됩니다.

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 

을하지만 여전히로드의 첫 번째 항목 (기본 항목)을 강조하지 않습니다.

+0

왜 선택 기준이 "ddlSupervisorList.Items.Count - 1"입니까? 데모 목적 일 뿐이니 아니면 실제로 목록에서 마지막 항목을 선택하려고합니까? – swannee

+0

정직하게도 if 문은 마지막 항목이 업데이트 된 항목이 선택된 항목이라면 강제로 'SelectedItem'에 해당 속성에 CSSStyle을 추가하도록 강요합니다. – em3ricasforsale

+0

파이어 버그 또는 ie dev 도구를 사용하여 실제로 어떤 스타일 속성이 항목에 적용되었는지 확인 해 봤니? 아마도 다른 것이 적용된 스타일보다 우선합니다. – swannee

답변

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); 
}); 
-1

동적으로 생성되는 경우 if (! page.IsPostBack)에 넣지 않도록하십시오. page_load에서 원하는 스타일로 드롭 다운을 다시 렌더링해야합니다.

+0

나는 이미 체크했는데 isPostBack과 관련이 없다. 왜냐하면 다른리스트 항목들 모두에 스타일을 유지하고 있기 때문이다. – em3ricasforsale

관련 문제