winforms 排序DataGridview时固定总计行

toiithl6  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(100)

我有DATAGRIDVIEW叫ADVANCEDDATAGRIDVIEW
查看此链接
https://www.nuget.org/packages/DG.AdvancedDataGridView
好吗?
现在我填写了这个DGV从数据表
这里是第一个代码:DT is A DATATABLE已经有数据

With Form1.AdvancedDataGridView1
            .DataSource = DT
            Form1.BindingSource1.DataSource = .DataSource : Endwith

字符串
现在这个DGV有来自DT的数据
我把BindingSource FROM TOOLBOX添加到Form1中,然后从DATAGRIDVIEW填充它。
AdvancedDataGridview已经在Microsoft Office中具有类似excel的过滤器图标
但要使其工作,您必须像这样在FilteringChange事件中编写此代码

Private Sub AdvancedDataGridView1_FilterStringChanged(sender As Object, e As EventArgs) Handles AdvancedDataGridView1.FilterStringChanged
    BindingSource1.Filter = AdvancedDataGridView1.FilterString : End SUB


所以现在在DT中添加了一行,就像DT.rows.add()这样
因此该行i按列和填充
好的..现在看看图片,看看DGV现在


的数据
因此,正如你所看到的,有过滤器图标了Wheni使用它和过滤数据一样,在MS中的Excel其工作正常
但筛选后最后一行(TOTAL ROW)变为“不存在
我为我糟糕的英语和描述感到抱歉
这就是我所尝试的

Private Sub AdvancedDataGridView1_FilterStringChanged(sender As Object, e As EventArgs) Handles AdvancedDataGridView1.FilterStringChanged

    Dim A, B As String
    A = CStr(AdvancedDataGridView1.FilterString)
    B = A & " Or ItemName = 'total'"
    BindingSource1.Filter = B


非常感谢您的评分
我觉得这个很好,要不要改一下?
这里排序问题

Private Sub AdvancedDataGridView1_SortStringChanged(sender As Object, e As EventArgs) Handles AdvancedDataGridView1.SortStringChanged

    BindingSource1.Sort = AdvancedDataGridView1.SortString
    BindingSource1.Sort = "Sorting Asc"


在这段代码中,我添加了名为“排序”的列,并将所有列的值设置为0,但总行设置为1
现在这个代码不与我正确地工作
有什么可以尝试的吗?

pdkcd3nj

pdkcd3nj1#

我通过@dr.null解决了

Private Sub AdvancedDataGridView1_FilterStringChanged(sender As Object, e As EventArgs) Handles AdvancedDataGridView1.FilterStringChanged

    Dim A As String = AdvancedDataGridView1.FilterString
    Dim B As String = If(String.IsNullOrEmpty(A), A, A & " Or ItemName = 'total'")
    BindingSource1.Filter = B

字符串

相关问题