Usando o databinder.eval () em estilo atributo de um controle de ASP.NET
-
26-09-2019 - |
Pergunta
Eu tenho um linkbutton ASP.NET dentro do ASP.NET Repeater Control, que renderiza vários botões de link. Quero definir o estilo de todo e qualquer linkbutton dinamicamente.
estou tentando
style="color:#6D7B8D;font-size:<%# DataBinder.Eval(Container.DataItem, "Title")%>;"
Mas estou recebendo o erro "A tag do servidor não está bem formada".
Alguma ideia?
Solução
Meu entendimento é que o uso de tags de servidor para atributos exige que a tag do servidor seja usada para o inteira Valor do atributo. Tente mudar para isso:
style='<%# "color:#6D7B8D;font-size:" + DataBinder.Eval(Container.DataItem, "Title") + ";" %>'
Observe como todo o atributo de estilo está sendo construído no código C# entre as tags do servidor.
Outras dicas
Escreva assim:
style='color:#6D7B8D;font-size:<%# DataBinder.Eval(Container.DataItem, "Title")%>;'
Com citações únicas em vez de citações duplas em torno do estilo
Remover
<%# Databinder.Eval(Container.DataItem, "Title") %>
Para:
Text='<%# Databinder.Eval(Container.DataItem, "Title") %>'
Também podemos usar o operador Trenary dentro dele- para personalizar o tamanho da fonte
style='<%# "color:#6D7B8D;font-size:"Convert.ToInt32(DataBinder.Eval(Container.DataItem, "fontSize"))<5?"40":"30");" %>'