Wie der Titel schon sagt, habe ich ein Etikett im Repeater und möchte seine Farbe entsprechend seinem Textwert ändern. Kann ich das auf irgendeine Weise ohne Chaos tun?
<asp:Label ID="lblVerified" runat="server" Text='<%# Eval("post_verified")%>' OnLoad="lblVerified_Load"
Was ich tun möchte, ist, wenn Eval ("post_verified"). Gleich (Ja) sollte die Farbe grün und für "NEIN" rot sein.
2 Antworten
Sie können dies mit einem bedingten Operator tun:
<asp:Label ID="lblVerified" ForeColor='<%# (Eval("post_verified").Equals("Yes")) ? "Green" : "Red" %>' runat="server" Text='<%# Eval("post_verified")%>' OnLoad="lblVerified_Load">
Arbeitete wie ein Zauber mit dieser kleinen Bearbeitung:
<asp:Label ID="lblVerified" runat="server" Text='<%# Eval("post_verified")%>' ForeColor='<%# (Eval("post_verified").Equals("yes")) ? System.Drawing.Color.Green : System.Drawing.Color.Red %>'>
Angenommen, mit "in einem Repeater" meinen Sie, dass sich das Label in einem ItemTemplate
oder einem AlternatingItemTemplate
befindet, dann sollten Sie das ItemDataBound
-Ereignis von Repeater
anstelle des Das OnLoad
-Ereignis des Labels, da das OnLoad
-Ereignis zu früh auftritt.
Sie müssen den Ereignishandler deklarieren ...
repearter1.ItemDataBound += repearter1_ItemDataBound;
Dann können Sie im Event-Handler das Label-Steuerelement finden und bearbeiten ...
void repearter1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Label lblVerified = e.Item.FindControl("lblVerified") as Label;
if (lblVerified != null)
{
//TODO: manipulate the control
}
}
Beachten Sie, dass Sie Datenelemente auch aus dem ItemDataBound
-Ereignis abrufen können, wenn Sie Folgendes tun ...
var dataItem = e.Item.DataItem as WhateverTheUnderlyingTypeIs;
Neue Fragen
c#
C # (ausgesprochen "siehe scharf") ist eine statische Typisierungsprogrammiersprache mit mehreren Paradigmen, die von Microsoft entwickelt wurde. C # -Code zielt normalerweise auf die .NET-Tools und -Laufzeiten von Microsoft ab, zu denen unter anderem .NET Framework, .NET Core und Xamarin gehören. Verwenden Sie dieses Tag für Fragen zu Code, der in der formalen Spezifikation von C # oder C # geschrieben ist.