2 Stimmen

wie man den größten Wert in einer Gridview hervorhebt

Ich habe eine Gridview, die gebunden ist.

Und ich möchte die Farbe der Schrift für die längste Vorlaufzeit ändern, auch wenn es Duplikate gibt. Ich habe keine Ahnung, wie ich meine if-Anweisung schreiben soll.

Dies ist eine grobe Idee von dem, was ich tun möchte, obwohl ich weiß, dass dieser Code falsch ist.

if Max(LeadTime) Then

GridView.ForeColor = Color.Red

Kann mir jemand helfen?

3voto

Paul Fleming Punkte 23538

Zunächst müssen Sie den Höchstwert aus Ihrer Datenquelle abrufen. Sie können dies mit linq tun:

maxLeadTime = ds.Max(dsi => dsi.LeadTime)

Vergleichen Sie in Ihrem Ereignis-Handler für gebundene Elementdaten das gebundene Element mit dem Maximalwert:

if (item.LeadTime == maxLeadTime)
{
    /* do stuff */
}

0voto

CodingSlayer Punkte 883

(VB.NET-Version) Angenommen, Sie binden Ihr Grid an eine Datentabelle, so werden Sie es tun.

 Private maxVal As Decimal

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Me.Page.IsPostBack Then
        dim dt as datatable = GetTable()
        maxVal = ds.AsEnumerable.Max(Function(dr) dr("lead_time"))
        gv.DataSource = dt
        gv.DataBind()
    End If
End Sub

Private Sub gv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv.RowDataBound
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim dr As DataRowView = e.Row.DataItem
        If dr("lead_time") = maxVal Then
            e.Row.BackColor = Drawing.Color.Red
        End If
    End If
End Sub

es wäre dasselbe, wenn Sie es an eine Liste (von T) binden würden

In PAge Load:

 maxVal = urList.Max(Function(x) x.LeadTime)

In Zeile dataBound:

 Dim uc As urClass = e.Row.DataItem
        If uc.LeadTime = maxVal Then
            e.Row.BackColor = Drawing.Color.Red
        End If

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X