GcMultiRow 是否支援多欄位排序
您好:我們使用 GcMultiRow 8.20.20143.0,
並且也學習到如何使用 ColumnHeaderCell.SortMode及 ColumnHeaderCell.DropDownList
來進行單欄位的 排序與篩選。
進一步想請教的是,GcMultiRow 是否能支援同時 使用 多個 Column(Cell) 的值來作為排序條件,
類似 SQL 指令中的 Order By Cell1 , Cell2, Cell3 的功能。
以上,煩請,指導一下。
謝謝 回复 1楼willsHuang的帖子
你好,非常感谢你的问题反馈。
我现在的工作环境没有该控件,但是还是帮你查找了一下解决方法。
代码运行效果我没有确认,非常抱歉,你可以参照如下代码,试一试
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim template1 As Template = Template.CreateGridTemplate(2)
GcMultiRow1.Template = template1
GcMultiRow1.RowCount = 10
GcMultiRow1.AllowUserToAddRows = False
Dim r As New Random()
For i As Integer = 0 To GcMultiRow1.RowCount - 1
GcMultiRow1.SetValue(i, 0, r.(1, 3))
GcMultiRow1.SetValue(i, 1, r.(1, 100))
Next
End Sub
Private Sub GcMultiRow1_CellClick(ByVal sender As Object, ByVal e As CellEventArgs) Handles GcMultiRow1.CellClick
If e.Scope = CellScope.ColumnHeader Then
Dim chCell As ColumnHeaderCell = GcMultiRow1.ColumnHeaders(0).Cells(e.CellIndex)
If chCell.SortGlyphDirection = SortOrder.Ascending Then
chCell.SortGlyphDirection = SortOrder.Descending
Else
chCell.SortGlyphDirection = SortOrder.Ascending
End If
Dim si0 As SortItem = New SortItem(0, SortOrder.None)
Dim si1 As SortItem = New SortItem(1, SortOrder.None)
Select Case e.CellIndex
Case 0
si0.SortOrder = chCell.SortGlyphDirection
Exit Select
Case 1
si0.SortOrder = DirectCast(GcMultiRow1.ColumnHeaders(0).Cells(0), ColumnHeaderCell).SortGlyphDirection
si1.SortOrder = chCell.SortGlyphDirection
Exit Select
End Select
GcMultiRow1.Sort(New SortItem() {si0, si1})
End If
End Sub
如果不能解决你的需求,欢迎再次反馈。 您好:
非常感謝您迅速的回饋,剛剛試了,已經可以了,
能否進一步,請教一下,
GcMultiRow1.Sort(New SortItem() {si0, si1})
其中,SortItem() 是否有數目上的限制呢 ...?
以上,煩請,指導一下。
謝謝 回复 3楼willsHuang的帖子
你好,非常感谢你的反馈
对于这个问题我也不是特别了解,我电脑上没有这个控件的环境,不过个人认为
几十个是应该没有问题的。具体上限我也不是特别了解,这个问题还是请Alice
女神回复你吧!
再此对你使用本产品非常感谢!!!如有什么问题欢迎反馈哦!!! 回复 3楼willsHuang的帖子
默认情况下,可以通过设置SortMode来实现单列的排序,click columnheader就会自动排序。
这种情况下,是不支持多列排序的。
但是MultiRow提供了Sort方法,可以实现更多样化的排序。Sort方法是个构造方法,里面有多样化参数。
你可以针对某一列进行升序或是降序排序,还可以继承IComparer接口,写自己的排序sort逻辑。这个接口是.net的接口,可以在网络上查到很多资料如何写。
其中一种的Sort方法就是Sort(SortItem[] sort),可以实现多个列排序,对具体的几个列没有限制,但这些SortItem的CellIndex是限制在0到MultiRow的列数之间。就是说你最多只能对Multirow的所有列进行排序,不能多与这些列。 回复 4楼rbgongming的帖子
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢 http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
您可以关注我们的微信服务号(微信号:GrapeCityDT),帖子有回复时可即时收到提醒,便于您第一时间查看,尽快解决技术问题。关注即可获得300金币用于兑换礼品。
页:
[1]