簡體   English   中英

VB.NET中的DataGridView多列排序不起作用

[英]DataGridView Multiple Column Sort in VB.NET Not Working

我有一個DataGridView控件,其中包含玩家列表,以及他們玩過,贏了,輸了多少場比賽,他們的獲勝百分比和高分。 我知道控件默認情況下只能按單個列排序,但是我發現一段代碼看起來應該可以工作,但是此后並沒有用數據填充控件。

這是我已在程序中實現的代碼:

' Style the DataGridView table and customise sorting by PERC, WON and then HIGH

    With frmHighscores
        Dim table As New DataTable()
        table.Columns.Add("Name", GetType(String))
        table.Columns.Add("P", GetType(Integer))
        table.Columns.Add("W", GetType(Integer))
        table.Columns.Add("L", GetType(Integer))
        table.Columns.Add("%", GetType(Decimal))
        table.Columns.Add("High", GetType(Integer))

        For l = 0 To 9
            table.Rows.Add(LNAME(l), PLAYED(l), WON(l), LOST(l), PERC(l), HIGH(l))
        Next

        table.DefaultView.Sort = "% Desc, W Desc, High Desc"
        .dgvHighscores.DataSource = table

    End With

如您所見,我創建了一個表,按3列對其進行排序,然后嘗試將其作為數據源綁定到我的控件,但是控件僅顯示空單元格; 沒有數據。 數組LNAME()PLAYED()WON()LOST()PERC()HIGH()都包含與表中定義的數據類型相同的數據。 我最初使用它們將行直接添加到控件中,然后再嘗試使用這種多排序,但未顯示數據。

我在這里做錯了什么? table設置為數據源后,為什么DataGridView控件不顯示數據?

編輯:圖像已添加

名為dgvHighscores的DataGridView對象

對不起,圖像質量差。

像往常一樣,經過一些努力,我設法弄清楚了-數據就在那里-但是由於我已經在窗體的對象中添加了列,因此程序在這些結尾處添加了它們! 我出於好奇而滾動,它們在那里。

在此處輸入圖片說明

也許這將對嘗試使用DataGridView對象進行多列排序的其他人有所幫助-我的原始代碼是正確的,但請確保未在表單(對象屬性)上添加任何列。

從下面的圖片中可以看到,它是按%,然后是W,然后是高手作為高手來排序的。 快樂的日子😊

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM