DataGridView绑定XML数据,并实现行的上下移动。
现在用XML绑定已经做到了。但如何实现在DataGridView中让选中的行上移或下移?

解决方案 »

  1.   

    只是在DataGridView中移动,要不要反映在数据库里呢?
      

  2.   


    数据是用XML绑定的。也需要改XML里的顺序
      

  3.   


              //向上移动
            private void button4_Click(object sender, EventArgs e)
            {
             if (dataGridView1.SelectedRows.Count == 0)
                {
                    return;
                }
                DataTable dt =(DataTable) this.dataGridView1.DataSource;
                
                int i  = this.dataGridView1.Rows.IndexOf(dataGridView1.SelectedRows[0]);
                object [] ot = dt.Rows[i].ItemArray;
                DataRow dr = dt.Rows[i];
                dt.Rows.Remove(dr);
                DataRow drs = dt.NewRow();
                drs.ItemArray = ot;
                dt.Rows.InsertAt(drs, i - 1);
                foreach (DataGridViewRow dgvr in dataGridView1.SelectedRows)
                {
                    dgvr.Selected = false;
                }
                
                dataGridView1.Rows[i - 1].Selected = true;
                dataGridView1.CurrentCell = dataGridView1.Rows[i - 1].Cells[0];
            }在网上学的,但是提示错误。
    无法将类型为“System.Data.DataSet”的对象强制转换为类型“System.Data.DataTable”。
      

  4.   

            //Call SwitchDataGridViewRow Method
            private void button1_Click(object sender, EventArgs e)
            {
                SwitchDataGridViewRow(0, 1);
            }        //Switch DataGridViewRow
            private void SwitchDataGridViewRow(int nRow1, int nRow2)
            {
                DataGridViewRow tmp = new DataGridViewRow();
                tmp.CreateCells(dgv_main);
                for (int i = 0; i < dgv_main.Columns.Count; i++)
                {
                    tmp.Cells[i].Value = dgv_main.Rows[nRow1].Cells[i].Value;
                    dgv_main.Rows[nRow1].Cells[i].Value = dgv_main.Rows[nRow2].Cells[i].Value;
                    dgv_main.Rows[nRow2].Cells[i].Value = tmp.Cells[i].Value;
                }
            }
      

  5.   

    那你面对的问题其实只是把datagridview的数据写到xml里而已
      

  6.   


    这短代码能实现对DataGridView 上下移动吗?麻烦下能不能把上调和下调的代码分别写下啊?上调用button4 下调用button5表示
      

  7.   

    以前写的:
    http://blog.csdn.net/wxm3630478/article/details/4256851
      

  8.   

    不就是相邻行调个位置么?但愿我的理解是对的。假使你选中第n行,那么:SwitchDataGridViewRow(n-1, n);//上移
    SwitchDataGridViewRow(n, n+1);//下移