problemas em dropdownlist

28/03/2012

Pessoal, estou com o seguinte problema:

Tenho uma tela no qual eu carrego um dropdownlist com dados pré-determinados na minha consulta, porém, eu tenho que
destacar alguns dados com uma cor diferente. Eu conseguir fazer isso, porém no momento em que é dado um postback na tela
ele perde o style.
Alguém saberia me dizer como eu faço pra manter o style do item do dropdownlist?
Abaixo segue o codigo.

protected void ddlEspecialidade_DataBound(object sender, EventArgs e)
{
for (int i = 0; i < ddlEspecialidade.Items.Count; i++)
{
if ((ddlEspecialidade.Items[i].Value.Equals(2120)) || (ddlEspecialidade.Items[i].Value.Equals(2121)) || (ddlEspecialidade.Items[i].Value.Equals(2320)) ||
(ddlEspecialidade.Items[i].Value.Equals(2420)) || (ddlEspecialidade.Items[i].Value.Equals(2510)) || (ddlEspecialidade.Items[i].Value.Equals(2620)) ||
(ddlEspecialidade.Items[i].Value.Equals(2820)) || (ddlEspecialidade.Items[i].Value.Equals(3220)) || (ddlEspecialidade.Items[i].Value.Equals(3320)) ||
(ddlEspecialidade.Items[i].Value.Equals(3420)) || (ddlEspecialidade.Items[i].Value.Equals(3620)) || (ddlEspecialidade.Items[i].Value.Equals(3520)))
{
ddlEspecialidade.Items[i].Attributes.Add(Style, color:blue);
}
}
}

Junior_jaco

Respostas

28/03/2012

Joel Rodrigues

Você precisará atualizar o DropDownList, por exemplo, no evento Load da página.
DropDownList1.DataBind();

Outra forma seria colocar esse código no próprio evento Load, assim, toda vez que a página fosse atualizada, o estilo seria aplicado.

Não sei se vai lhe servir, mas você pode pesquisar sobre as CSS3. Existem novos seletores por atributos, você pode aplicar um estilo fixo à página que altere apenas os itens do DropDownlList que atendam a sua necessidade. Eu particularmente nunca usei, mas talvez seja interessante pra você.

Boa sorte.
Responder Citar

28/03/2012

Joel Rodrigues

Bem, visualizando o código no Chrome, percebi que os elementos <asp:ListItem> são convertidos para <option>. Assim, testei o seguinte css que funcionou:

<style type=text/css>
option[value=1]{color:Yellow}
</style>

Aqui eu altero a cor dos itens cujo Value é 1.
Responder Citar

28/03/2012

Junior_jaco

Você precisará atualizar o DropDownList, por exemplo, no evento Load da página. DropDownList1.DataBind(); Outra forma seria colocar esse código no próprio evento Load, assim, toda vez que a página fosse atualizada, o estilo seria aplicado. Não sei se vai lhe servir, mas você pode pesquisar sobre as CSS3. Existem novos seletores por atributos, você pode aplicar um estilo fixo à página que altere apenas os itens do DropDownlList que atendam a sua necessidade. Eu particularmente nunca usei, mas talvez seja interessante pra você. Boa sorte.



Valeu cara... Consegui dando o bind no dropdown.
Responder Citar