datagridview的数据源是dataset的一个table。  现在datagridview在用户点击列头下进行了排序,然后选择了一些行。  后台的dataset怎样知道datagirdview选择了那些行?

解决方案 »

  1.   

    foreach(DataGridViewRow dgvr in dataGridViewData.SelectedRows)
                {                               selectedDataSet.Tables[0].ImportRow((DataRow)dgvr.DataBoundItem);              
                }
      

  2.   

    selectedDataSet = queryDataSet.Clone();               
                foreach(DataGridViewRow dgvr in dataGridViewData.SelectedRows)
                {
                    DataRowView drv = (DataRowView)dgvr.DataBoundItem;
                    selectedDataSet.Tables[0].ImportRow(drv.Row);              
                }
      

  3.   

    DataRowView view = dataGridViewRow1.SelectedRows[0].DataBoundItem as DataRowView;MessageBox.Show(view.Row["列名"].ToString());
      

  4.   

    楼上正解
    如果开启了排序要取数据的时候,最好取DataRowView的数据,而不是取DATATABLE的数据
    如果没开启排序都可取