事件 ColumnHeaderMouseClick 找不到

Event ColumnHeaderMouseClick Cannot be found

提问人:Alexander The Great 提问时间:3/23/2023 更新时间:4/6/2023 访问量:35

问:

我正在将一些数据加载到 vb 中的 GridView 中,并且需要使列可排序。默认排序属性不起作用,并且程序找不到 ColumnHeaderClickEvent。

我正在使用以下方法加载我的表数据:

        Using db = DBConnect()
        db.CommandText = $"Select * FROM tblStudySummary "
        GridView1.DataSource = (ReportQueryObject.BuildReportDataTable(db.GetDataSet))
        GridView1.DataBind()


        End Using

我试图在用户单击列标题名称时获取它,然后我可以使用 SQL 对数据进行排序。

        Private Sub HeaderClick(ByVal sender As Object, ByVal e As                   System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles                              GridView1.ColumnHeaderMouseClick
    Dim col_index = e.ColumnIndex
    Dim col_name = GridView1.Columns(col_index).Name
    MessageBox.Show(String.Format("Index={0}, Name={1}", col_index,
    col_name))
    End Sub

我真的不知所措,任何帮助将不胜感激。

我还尝试将 dataSource 转换为 SQLdataSource,但无济于事。不知道如何进行。

vb.net GridView 进行排序,单击 鼠标事件

评论

0赞 jmcilhinney 3/23/2023
ColumnHeaderMouseClick是类的成员,该类是一个 WinForms 控件。它与 Web 窗体无关。我花了几秒钟才通过搜索文档找到答案。在未先查阅相关文档的情况下,您永远不应该在这里提出问题。DataGridViewGridView

答:

0赞 Mario Cesar Calarco 3/23/2023 #1

我想你必须阅读这份文件才能以正确的方式做到这一点......我再也帮不上忙了。我在桌面应用程序上工作 https://learn.microsoft.com/en-us/dotnet/desktop/wpf/controls/how-to-sort-a-gridview-column-when-a-header-is-clicked?view=netframeworkdesktop-4.8

我在“编辑前”的回复中走错了方向。

可以通过以下方式访问:

Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick 

我猜您正在将网格视图与加载的数据表合并。 在数据表中,您可以使用以下命令访问 columnnameDatatable.Columns(e.columnindex).ColumnName

我通常将数据表绑定到绑定源,并将此绑定源绑定到 datagridview。因此,您可以筛选 bindingsource,bindingsource 将升级显示它的所有位置。

Dim BS as New BindingSource
BS.Datasource = Datatable
Datagridview.Datasource = BS