提问人:Alexander The Great 提问时间:3/23/2023 更新时间:4/6/2023 访问量:35
事件 ColumnHeaderMouseClick 找不到
Event ColumnHeaderMouseClick Cannot be found
问:
我正在将一些数据加载到 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,但无济于事。不知道如何进行。
答:
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
评论
ColumnHeaderMouseClick
是类的成员,该类是一个 WinForms 控件。它与 Web 窗体无关。我花了几秒钟才通过搜索文档找到答案。在未先查阅相关文档的情况下,您永远不应该在这里提出问题。DataGridView
GridView