DataGridView 点击列标题排序 如何实现
答案:2 悬赏:0 手机版
解决时间 2021-03-19 21:38
- 提问者网友:情歌越听越心酸
- 2021-03-19 06:05
DataGridView 点击列标题排序 如何实现
最佳答案
- 五星知识达人网友:一叶十三刺
- 2021-03-19 07:45
应该没问题的,lz再仔细看看你的代码。
如果实在不行就在dataGridView_ColumnHeaderMouseClick事件自己实现排序
那个事件的e.ColumnIndex应该是你点的列号,通过列号获得你的列名字排序代码: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 }
如果实在不行就在dataGridView_ColumnHeaderMouseClick事件自己实现排序
那个事件的e.ColumnIndex应该是你点的列号,通过列号获得你的列名字排序代码: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 }
全部回答
- 1楼网友:平生事
- 2021-03-19 09:16
编辑列-->选定列-->行为-->sortmode-->notsortable
或者代码里面设置
1
2
3
4
for (int i = 0; i < this.datagridview1.columns.count; i++)
{
this.datagridview1.columns[i].sortmode = datagridviewcolumnsortmode.notsortable;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯