Mik*_*ike 2 .net vb.net asp.net gridview
我想基于比较当前行值(第2列)和前一行值来格式化gridview.因此,如果它们是相同的,背景颜色将是相同的,例如绿色.如果它们不相同,则背景颜色为红色.例如:
Gridview values
Car 1 (bg color green)
Car 1 (bg color green)
Car 2 (bg color red)
Car 3 (bg color green)
Car 3 (bg color green)
Car 3 (bg color green)
Run Code Online (Sandbox Code Playgroud)
我无法让这个工作.这是我想出的代码.
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
If e.Row.RowType = DataControlRowType.DataRow Then
If Not e.Row.DataItem Is Nothing Then
'switch for first row
If e.Row.RowIndex = 1 Then
Dim Gprev As GridViewRow = GridView1.Rows(e.Row.RowIndex - 1)
If Gprev.Cells(1).Text = e.Row.Cells(1).Text Then
'e.Row.Cells(1).Text = ""
e.Row.BackColor = Drawing.Color.Red
End If
End If
'now continue with the rest of the rows
If e.Row.RowIndex > 1 Then
'set reference to the row index and the current value
Dim intC As Integer = e.Row.RowIndex
Dim lookfor As String = e.Row.Cells(1).Text
'now loop back through checking previous entries for matches
Do
Dim Gprev As GridViewRow = GridView1.Rows(intC - 1)
If Gprev.Cells(1).Text = e.Row.Cells(1).Text Then
'e.Row.Cells(1).Text = ""
e.Row.BackColor = Drawing.Color.Red
End If
intC = intC - 1
Loop While intC > 0
End If
End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
c#中的代码,但希望很容易翻译...
在RowDataBound中......
if (e.RowType != DataControlRowType.DataRow) return;
if (e.Row.DataItemIndex ==0)
{
e.Row.Cells[1].BackColor = Color.Green;
return;
}
var thisRow = e.Row;
var prevRow = GridView.Rows[e.Row.DataItemIndex-1];
e.Row.Cells[1].BackColor = (thisRow.Cells[1].Text == prevRow.Cells[1].Text) ? Color.Green : Color.Red;
}
Run Code Online (Sandbox Code Playgroud)
注意绿色和红色通常不是相互对比的好选择(色盲)
归档时间: |
|
查看次数: |
10819 次 |
最近记录: |