繁体   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