Сравнивая 3 столбца в GridView, если все совпадают, установите фон строки в зеленый - PullRequest
0 голосов
/ 28 января 2019

Я пишу страницу, где я перечисляю данные в GridView, основанном на нескольких базах данных.Все базы данных имеют поле «Местоположение» (nvarchar).Если это поле идентично, я хотел бы пометить строку зеленым цветом.

Не иметь большого знания в ASP / VB, любая помощь приветствуется.

Пример кода ниже простопопробуйте, не работает / или не завершите на этом этапе.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"  DataSourceID="DSViewAll">
                <Columns>
                    <asp:BoundField DataField="Location1" HeaderText="Location1" SortExpression="Location1" />
                    <asp:BoundField DataField="Location2" HeaderText="Location2" SortExpression="Location2" />
                    <asp:BoundField DataField="Location3" HeaderText="Location3" SortExpression="Location3" />
                </Columns>
            </asp:GridView>


Protected Sub GridView1_RowDataBound _
        (sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) _
        Handles GridView1.RowDataBound

        If e.Row.RowType = DataControlRowType.DataRow Then

        If e.Column.FieldName = "Location1" Then
                    Dim view As GridView = TryCast(sender, GridView)
                    Dim val1 As String = (view.GetRowCellValue(e.RowHandle, view.Columns("Location1")))
                    Dim val2 As String = (view.GetRowCellValue(e.RowHandle, view.Columns("Location2")))
                    e.Appearance.BackColor = If(val1 = val2, Color.Green, e.Appearance.BackColor)
            End If
        End If
End Sub

1 Ответ

0 голосов
/ 28 января 2019

Добавьте это к вашему запросу: ВЫБЕРИТЕ IFF (dbo.DB1.Location1 = dbo.DB2.Location2 AND dbo.DB2.Location2 = dbo.DB3.Location3) AS Идентично, ....

Тогдав коде

If e.Row.RowType = DataControlRowType.DataRow Then
  'the cell where the field with the name "Identical" is shown
  If e.Row.Cells(1).Text = "True" Then
      e.Row.BackColor = Color.Green
  End If
End If

или без изменения запроса

If e.Row.RowType = DataControlRowType.DataRow Then
'the cells where the fields with the names "Location1", "Location2" and "Location3" are shown
   If e.Row.Cells(1).Text = e.Row.Cells(2).Text AndAlso e.Row.Cells(2).Text = e.Row.Cells(3).Text   Then
      e.Row.BackColor = Color.Green
   End If
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...