我有一个绑定的gridview。
即使有重复,我也想在最长的交货时间内更改字体的颜色。我不知道如何编写我的 if 语句。
这是我想做的一个粗略的想法,尽管我知道这段代码是错误的。
if Max(LeadTime) Then
GridView.ForeColor = Color.Red
谁能帮我?
您首先需要从数据源中获取最大值。您可以使用 linq 执行此操作:
maxLeadTime = ds.Max(dsi => dsi.LeadTime)
在您的项目数据绑定事件处理程序中,将绑定项目与最大值进行比较:
if (item.LeadTime == maxLeadTime)
{
/* do stuff */
}
(VB.NET 版本)假设您将 Grid 绑定到数据表,这就是您将如何做到的。
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
如果你将它绑定到一个列表(T),它会是一样的
在页面加载中:
maxVal = urList.Max(Function(x) x.LeadTime)
在行数据绑定中:
Dim uc As urClass = e.Row.DataItem
If uc.LeadTime = maxVal Then
e.Row.BackColor = Drawing.Color.Red
End If