DataGridView排序事件是哪一个
发布网友
发布时间:2022-09-09 05:09
我来回答
共3个回答
热心网友
时间:2024-11-29 08:35
解决方案1:
Automatic.SortMode = DataGridViewColumnSortMode.Columns[XXX];
gridViewDataGridView gridView;
设置某一列可以自动排序,这样可以实现你的需求么
解决方案2:
不行,这个是默认的。
如果用非连接模式,dataGridView1.DataSource = ds.Tables["aa"];,点击列头可以排序的,
但为何用连接模式绑定,绑定dataGridView1.DataSource=list,就不行了呢?
解决方案3:
哦,那需要自定义排序了,把这一列的SortMode设置为DataGridViewColumnSortMode.Programmatic
在ColumnHeaderMouClick事件里自己给DataGridView的DataSource排序
这是我写的示例代码,希望对你有所帮助
DataGridView gridView;
gridView.Columns[XXX].SortMode = DataGridViewColumnSortMode.Programmatic;
void ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
//取得点击列的索引
int nColumnIndex = gridView.HitTest(e.X, e.Y);
if (!gridView.Columns[nColumnIndex].SortMode == DataGridViewColumnSortMode.Programmatic)
{
return;
}
switch (gridView.Columns[nColumnIndex].HeaderCell.SortGlyphDirection)
{
case SortOrder.None:
case SortOrder.Ascending:
//在这里加入排序的逻辑
//设置列标题的状体
gridView.Columns[nColumnIndex].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
break;
default:
gridView.Columns[nColumnIndex].HeaderCell.SortGlyphDirection = SortOrder.Descending;
break;
}
}
热心网友
时间:2024-11-29 08:35
通过列号获得你的列名字排序代码:DataTable d = dvtodt(dataGridView3);
d.DefaultView.Sort = "aa ASC";//aa是列标题的text,ASC代表升序(desc降序)
dataGridView1.Columns.Clear();
dataGridView1.DataSource = d;
按列aa进行排序
//将DataGridView 内容读进datatable
02public DataTable dvtodt(DataGridView dv)
02 {
02 DataTable dt = new DataTable();
02 DataColumn dc;
02 for (int i = 0; i < dv.Columns.Count; i++)
02 {
02 dc = new DataColumn();
02 dc.ColumnName = dv.Columns[i].HeaderText.ToString();
02 dt.Columns.Add(dc);
02 }
02 for (int j = 0; j < dv.Rows.Count - 1; j++)
02 {
02 DataRow dr = dt.NewRow();
02 for (int x = 0; x < dv.Columns.Count; x++)
02 {
02 dr[x] = dv.Rows[j].Cells[x].Value;
02 }
02 dt.Rows.Add(dr);02 }
热心网友
时间:2024-11-29 08:36
排序中:SortCompare
排序完成:Sorted
例子:
Private Sub DataGridView1_Sorted(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.Sorted
End Sub