Мне нужно иметь три цвета на динамическом Gridview один белый, а другой серый, но если он в ту же дату , и если предыдущая дата не была найдено красный , что я имею в виду:Измените цвет строки Gridview, если он в ту же дату будет белого цвета, а затем серый
Name Checkin Checkout Branch
450 10/6/2014 9:13:38 AM 10/6/2014 6:01:50 PM branch0 white
450 10/7/2014 9:16:34 AM 10/7/2014 6:44:21 PM branch0 gray
450 10/8/2014 9:11:53 AM branch0 white
450 10/8/2014 6:03:25 PM branch0 white
450 10/11/2014 9:17:33 AM 10/11/2014 6:29:16 PM branch0 red
450 10/11/2014 4:50:42 PM branch0 red
450 10/12/2014 9:09:38 AM branch0 white
и что мой GridView
<asp:GridView ID="GridView1" runat="server" AllowSorting="True"
AutoGenerateColumns="False" DataSourceID="SqlDataSource2"
BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px"
CellPadding="3" CellSpacing="2" HorizontalAlign="Center" Width="602px">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name"
SortExpression="Name" />
<asp:BoundField DataField="Checkin" HeaderText="Checkin"
SortExpression="Checkin" ReadOnly="True" />
<asp:BoundField DataField="Checkout" HeaderText="Checkout"
SortExpression="Checkout" ReadOnly="True" />
<asp:BoundField DataField="MachineAlias" HeaderText="Branch"
SortExpression="MachineAlias" />
</Columns>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FFF1D4" />
<SortedAscendingHeaderStyle BackColor="#B95C30" />
<SortedDescendingCellStyle BackColor="#F1E5CE" />
<SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>
и это код
Public Class WebForm2
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
End Class
44 +44516410617451515053691368888
после я искать у меня есть этот код
Dim found As Boolean
Dim dt As DateTime
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If Not IsDBNull(DataBinder.Eval(e.Row.DataItem, "Checkout")) Then
dt = Convert.ToDateTime(DataBinder.Eval(e.Row.DataItem, "Checkout")).Date
End If
If e.Row.RowIndex > 0 And found = False Then
e.Row.BackColor = Drawing.Color.Red
End If
found = Not IsDBNull(DataBinder.Eval(e.Row.DataItem, "Checkout"))
End If
End Sub
но это дает моя ошибка
когда я пытаюсь код с MR @Zack я эта ошибка
Довольно уверен, что вы можете использовать событие RowDataBound, чтобы сравнить два столбца друг с другом и выделить их, когда есть совпадение в дате. Вам нужно будет отформатировать данные, поступающие из ячейки, в mm/dd/yyyy и отбросить время, хотя это будет точное совпадение. Я приведу вам пример, но я не сижу за компьютером с компилятором и не хочу давать вам уродливый код. Если вы google, хотя вы можете найти что-то на нем. – Zack
Линия ошибок состоит в том, что она должна быть e.Row.RowType, и вы просто имеете «R» в середине ее. Он также обрабатывает GridView1.DataBinding и должен быть GridView1.RowDataBound – Zack