1

我有一张表 sales(invoice,dateinv,seller,grade)

Dim sql As String = "SELECT * FROM Sales"
Dim daHeader As New SqlDataAdapter(sql, Conn)
Dim dtSales As New DataTable
daHeader.Fill(dtSales)

dgvheader.AutoGenerateColumns = False
dgvHeader.Columns.Add(New DataGridViewTextBoxColumn() With {.HeaderText = "Date", .DataPropertyName = "dateinv"}) 
dgvHeader.Columns.Add(New DataGridViewTextBoxColumn() With {.HeaderText = "Seller", .DataPropertyName = "seller"}) 
dgvHeader.Columns.Add(New DataGridViewTextBoxColumn() With {.HeaderText = "Grade", .DataPropertyName = "grade"}) 
dgvHeader.DataSource = dtSales

等级列的值在 1-3 之间。
如何在 Datagridview 中显示等级值:
1 =“优秀”
2 =“好”
3 =“足够”

谢谢,,

4

2 回答 2

1

您可以挂钩DataGridView.CellFormatting事件

编辑

如果您设置列的名称, @matzone 中的代码将起作用,但您只设置HeadertextDataPropertyName

所以试试这个:

Private Sub dgvHeader_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles dgvHeader.CellFormatting

Dim sHeader As String = dgvHeader.Columns(e.ColumnIndex).HeaderText

    If sHeader = "Grade" Then

        If e IsNot Nothing Then
            If e.Value IsNot Nothing Then
                Select Case e.value '-----------> assumed grade as numeric field
                  Case 1 : e.Value = "Excellent"
                  Case 2 : e.Value = "Good"
                  Case 3 : e.Value = "Enough"
                End Select                    
            End If        
        End If
        e.FormattingApplied = True
    End If
End Sub

我只改变了这一行:

 Dim sHeader As String = dgvHeader.Columns(e.ColumnIndex).HeaderText
于 2013-05-25T09:19:25.567 回答
1

使用 datagridwiw.cellformatting 事件

Private Sub dgvHeader_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles dgvHeader.CellFormatting

Dim sHeader As String = dgvHeader.Columns(e.ColumnIndex).Name

    If ucase(sHeader) = "GRADE" Then

        If e IsNot Nothing Then
            If e.Value IsNot Nothing Then
                Select Case e.value '-----------> assumed grade as numeric field
                  Case 1 : e.Value = "Excellent"
                  Case 2 : e.Value = "Good"
                  Case 3 : e.Value = "Enough"
                End Select                    
            End If        
        End If
        e.FormattingApplied = True
    End If
End Sub
于 2013-05-26T16:18:45.620 回答