2014年4月7日 星期一

VB.net DataGridView 資料列 排序

參考http://wachaolala.blogspot.tw/2011/07/vb-datagridview.html

'gridview 篩選過後資料是否開放各欄位排序,
  (暫定物料編號排序,鎖死)

'以最適欄寬顯示所有資料,並鎖死欄寬

'gridview 滑鼠划過資料列,顏色醒目提示

'第一頁,上一頁,目前頁數/總頁數,下一頁,最後一頁,目前資料第幾筆,資料總筆數
 可能SQL也要改寫(count 資料筆數)
 怎麼讓他分頁去顯示DataGridView
 怎麼讓她列印或是轉Excel,能夠所有分頁資料都轉

'使用者拖拉自訂 Column 順序

改變每一列的顏色

If DataGridView1.Rows.Count <> 0 Then
            For i As Integer = 0 To DataGridView1.Rows.Count - 1
                If (i Mod 2) = 0 Then
                    DataGridView1.Rows(i).DefaultCellStyle.BackColor = System.Drawing.Color.LightGreen
                Else
                    DataGridView1.Rows(i).DefaultCellStyle.BackColor = System.Drawing.Color.LimeGreen
                End If
            Next
        End If

============================================

DataGridView.Sort 方法 (DataGridViewColumn, ListSortDirection)

===============================================================
滑鼠划過資料列,顏色醒目提示

目前會碰到說,每次滑鼠移動,整個 GridView 畫面會閃爍



   '滑鼠於 DataGridView 上任一列移動時,改變該列顏色
    Private Sub DataGridView1_CellMouseEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellMouseEnter
        If e.RowIndex > 0 Then
            DataGridView1.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.FromArgb(224, 224, 224)
            SetStyle(ControlStyles.DoubleBuffer, True)
        End If
    End Sub

    '滑鼠於 DtaGridView 離開任一列時,改回原本顏色
    Private Sub DataGridView1_CellMouseLeave(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellMouseLeave
        If e.RowIndex > 0 Then
            DataGridView1.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.White
        End If
    End Sub

    '當 DatagridView 資料繫結以後,限制為無法再排序
    Private Sub DataGridView1_DataBindingComplete(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs) Handles DataGridView1.DataBindingComplete
        '以物料編號 遞增排序
        DataGridView1.Sort(DataGridView1.Columns("物料編號"), System.ComponentModel.ListSortDirection.Ascending)
        '限制無法再以其他方式排序
        DataGridView1.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable

    End Sub


==============================================================
DataGridView 分頁功能
http://dotnetmis91.blogspot.com/2008/09/datagridview.html

要注意的是,他首頁的 pageFlag = 0
所以要顯示的時候,需要注意 加1,減1 的問題

沒有留言:

張貼留言