Array
(
)

problemas em dropdownlist

Junior_jaco
   - 28 mar 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);
}
}
}

Joel Rodrigues
   - 28 mar 2012

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.

Joel Rodrigues
   - 28 mar 2012

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.

Junior_jaco
   - 28 mar 2012


Citação:
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.