webForumDet fria alternativet

label ForeColor i GridView

.NET

2 svar · 365 visningar · startad av Arne

Medlem sedan maj 2000267 inlägg
Frågan#1

Behöver hjälp med att i en GridView sätta min label om värdet är true till ForeColor="#FF0000"
Får det att fungera med en Function med Font-Strikeout och Font-Bold, men misslyckas med ForeColor. Några tips hur jag ska gå till väga?

Public Function CheckInstalld(x As String) As String
    If x = True Then
        return True
    Else
        return False
    End If
End Function
<ItemTemplate>
<asp:Label ID="lblTavlingsnamn" Text='<%# DataBinder.Eval(Container.DataItem, "tavlingnamn")%>' Font-Bold='<%# CheckInstalld(Container.DataItem("installd").ToString())%>' Font-Strikeout='<%# CheckInstalld(Container.DataItem("installd").ToString())%>' runat="server" />
</ItemTemplate>
Medlem sedan juli 20011 084 inlägg
#2

Nu var det ett tag sedan jag jobbade med detta men borde det inte vara smidigare att använda sig av ett DataBound-event istället? t.ex.

Protected Sub GridView1_RowDataBound(ByVal objSender As Object, ByVal objArgs As System.Web.UI.WebControls.GridViewRowEventArgs)
  If (objArgs.Row.RowType = DataControlRowType.DataRow) Then
    Dim objRowVals As DataRowView = CType(objArgs.Row.DataItem, DataRowView)

    Dim lblTavlingsnamn Label = CType(objArgs.Row.FindControl("lblTavlingsnamn"), Label)
    lblTavlingsnamn.Text = objRowVals("tavlingnamn")

    If (CheckInstalld(objRowVals("installd"))) Then
      lblTavlingsnamn.Bold = True
      lblTavlingsnamn.Strikeout = True
      lblTavlingsnamn.ForeColor = "#FF0000"
    End If
  End If
End Sub

Otestad kod (och jag är inte så hemma i VB.NET), tagen från denna sidan och modifierad lite, men du förstår nog tanken bakom det.

Medlem sedan maj 2000267 inlägg
#3

Fungerar mycket bättre

Tack för hjälpen.........

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)