[英]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控件不显示数据?
编辑:图像已添加
对不起,图像质量差。
像往常一样,经过一些努力,我设法弄清楚了-数据就在那里-但是由于我已经在窗体的对象中添加了列,因此程序在这些结尾处添加了它们! 我出于好奇而滚动,它们在那里。
也许这将对尝试使用DataGridView对象进行多列排序的其他人有所帮助-我的原始代码是正确的,但请确保未在表单(对象属性)上添加任何列。
从下面的图片中可以看到,它是按%,然后是W,然后是高手作为高手来排序的。 快乐的日子😊
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.