2011年7月11日 星期一

#VB DataGridView 資料列 排序 等相關屬性問題

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

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

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

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

'使用者拖拉自訂 Column 順序


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

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 的問題

發現 tblMRP 應該先做好排序
不然,去分頁顯示的時候,
他會依照未排序的tblMRP撈資料進來才排序
=============================================================
手動輸入頁碼部分
想先鎖來
到時候跟老大討論應該怎麼做比較好,需不需要手動輸入頁碼的部份
目前Case感覺起來不太需要

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

DataTable 的 Paging 與 Sorting - 使用 Extension Method

針對 DataTable 的 Extension Method,主要目的用來 Paging (分頁) 與 Sorting (排序),減少資料傳輸量。
Paging 部分,使用 LINQ 的 Skip (略過) 與 Take (取用) 來計算擷取的資料範圍。
Sorting 部分,則是使用 LINQ 的 OrderBy 與 OrderByDescending 來指定排序方向。

靠~可能要自己寫一個SORTING了
不知道為什麼用datatable.select去排序,
卻始終沒反應

透過之前寫過的 LINQ 語法, 直接對該Table做Order By
就可以了
卡超久

沒有留言:

張貼留言