2016-12-05 1 views
0

Ainsi, ce que j'essaie de faire est assez simple. L'idée est de définir la couleur du texte d'un bouton de lien à l'aide de la propriété ForeColor en utilisant une requête en ligne qui définit la couleur en fonction de la valeur de l'Eval en cours de vérification. Comme il est maintenant (voir le code ci-dessous), il fonctionne bien pour deux couleurs, comme une simple requête binaire if/else inline. Le problème est essentiellement que je voudrais trouver un moyen d'ajouter plus d'options ou d'imbriquer la requête en ligne pour permettre plus de choix (tir pour 10) que je n'ai pas été en mesure de comprendre comment faire.Définition de la couleur d'un bouton de liaison au démarrage via la propriété ForeColor basée sur les données Eval extraites de la base de données ASP.net/C#

Notez que le lien en question est à l'intérieur d'un répéteur et donc hors de portée de faire simplement cela avec une méthode, ce qui est idéalement ce que j'aurais aimé faire. Quoi qu'il en soit, voici le code que je travaille avec, et la langue en question est ASP.net/C#:

<asp:LinkButton ID="lblFromUser" Text='<%# Eval("fromuser") %>' CommandArgument='<%#Eval("id")%>' OnCommand="test" ForeColor='<%# ((Eval("sendertype").Equals("Admin")) || Eval("sendertype").Equals("Moderator")) ? System.Drawing.Color.Orange : System.Drawing.Color.DarkTurquoise %>' Font-Underline="false" Font-Size="small" runat="server" /> 

Répondre

0

Que diriez-vous de créer une fonction sur le code derrière avec le paramètre de votre type d'élément, puis retourner la couleur? Comme ceci:

.cs fichier:

Protected System.Drawing.Color generateColor(ItemType input) 
{ 
    ((Eval("sendertype").Equals("Admin")) || Eval("sendertype").Equals("Moderator")) ? System.Drawing.Color.Orange : System.Drawing.Color.DarkTurquoise 
} 

page Markup:

<asp:LinkButton ID="lblFromUser" Text='<%# Eval("fromuser") %>' CommandArgument='<%#Eval("id")%>' OnCommand="test" ForeColor='<%# generateColor((ItemType)Container.DataItem))%>' Font-Underline="false" Font-Size="small" runat="server" /> 
+0

J'ai essayé, malheureusement ça n'a pas marché. Bien que je soupçonne que même si j'avais fini avec le même problème, j'ai commencé avec – Rhodes

+0

Oh, quel est le message d'erreur ..? – User2012384