dataGridView1绑定了数据源,并在最后一行手工加上了一行合计行,但排序为降序时,会将合计行显示在dataGridView1第1行,这样看上去很不好看,不知道有没有办法解决?怎么解决?

解决方案 »

  1.   

    我的意见是在后台计算之后再输出···或者自己去画一个datagridview
      

  2.   

    就是dataGridView1控件显示了从SQL数据库中查询出来的数据,然后手工在最后加了一行合计数据列。现在的问题是:当排序时,这手工加上的这行如何让他始终显示在最底端,而不会因为降序跳到第一行去了。
      

  3.   

    据说这样可以,但时执行重新绑定时dataGridView1.DataSource = dt,会报错:
    操作无效,原因是它导致对 SetCurrentCellAddressCore 函数的可重入调用。private void dataGridView1_Sorted(object sender, EventArgs e)
            {
                DataTable dt = ds1.Tables[0];
                DataView dv = dt.DefaultView;
                dv.Sort = dt.Columns[colindex].ColumnName;
                dt = dv.ToTable();
                dt.Rows.Add(lastRow[0]);
                lastRow.Clear();
                //dataGridView1.DataSource = dt;这行会报错
            }        private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
            {
                if (e.RowIndex >= 0 || dataGridView1.Rows.Count <= 1)
                {
                    return;
                }
                else
                {
                    if (lastRow.Count == 0)
                    {
                        colindex = e.ColumnIndex;
                        lastRow.Add(ds1.Tables[0].Rows[dataGridView1.Rows.Count - 1].ItemArray);
                        ds1.Tables[0].Rows.RemoveAt(ds1.Tables[0].Rows.Count - 1);
                    }
                }
            }
      

  4.   

    手写代码绑定列使用GridViewTextColumn 可以试试
      

  5.   

    你是指在SQL语句中的排序还是datagridview列头那排序?
      

  6.   

    To flowfog:我是指在datagridview列头那排序.To wangyue4:单击列的事件里先把最后一行的数据存在内存里再删掉该行,然后排完序再把它加上不就可以了么.我也是这样想的,排序前后两个事件在哪里处理?因为排序是控件自带的功能,点击列标题已经自动排序了,自己没有别外写排序事件。所以不知道排序前后两个事件在那里处理?
      

  7.   

    http://download.csdn.net/down/2875543/flowfog
      

  8.   

    我下了,但是打不开,提示需要安装4.0的.net farmework。无安装的的VS2008版。是3.5的.net farmework打不开。如果可以转一下的话,请传
      

  9.   

    收到了,需要安装4.0的.net farmework,我安装的是VS2008版,打不开!!!