本帖最后由 wwqisis 于 2013-01-30 12:00:00 编辑

解决方案 »

  1.   

    for(int i=0; i< gridview.RowCount; i++)
    {
        GridData rowData = gridview.GetRow(i) as GridData;
    }GridData是你绑的数据对象
      

  2.   

    http://blog.csdn.net/wjv20110308/article/details/7005444
      

  3.   

    朋友啊,我这个gird 是基于gridControl
      

  4.   

    好像就是GetDataRow
    http://www.doc88.com/p-162108093539.html
      

  5.   


    GetDataRow这个方法有个int类型的参数
      

  6.   

    要获取所有行,你直接访问DataSource属性即可,那个是原始数据源,如果传递的是List<T>,你得到的就是该List<T>对象,如果传递的是DataTable,那么GridControl的DataSource就是那个DataTable,而GridView的DataSource属性则是其DefaultView
      

  7.   

    private void btnAdd_Click(object sender, EventArgs e)
            {
                this.EndEdit();            DataTable dtMaster = this.mClientBLData.DsData.Tables[0];
                bool cbChecked = false;
                int blAdd = 0;            #region
                for (int i =gridView1.RowCount - 1; i >= 0; i--)
                {
                    DataRow dgr = gridView1.GetDataRow(i);
                    cbChecked = dgr["Column1CbSelect"] == null ? false : (bool)(dgr["Column1CbSelect"]);                if (cbChecked == true)
                    {
                        blAdd = 0;
                       for (int j = 0; j < gridView2.RowCount; j++)
        {
                            DataRow dgr2 = gridView1.GetDataRow(j);
                    if (dgr2["Column2ProdID"].ToString().Trim() == 
                                      dgr["Column1ProdID"].ToString().Trim())
                            {
                                blAdd = blAdd + 1;
                            }
            } 
                        
                        if (blAdd == 0)
                        {
                            DataRow dr = dtMaster.NewRow();
                            if (dr != null)
                            {
                            dr["CompanyID"] =this.mClientApp.CurrentUserInfo.CompanyID;
                                dr["prodID"] = dgr["Column1ProdID"];
                                dr["prodCode"] = dgr["Column1ProdCode"];
                                dr["prodName"] = dgr["Column1ProdName"];
                                dr["prodSpecName"] = dgr["Column1ProdSpec"];
                                dr["Disabled"] = false;
                                dr["ProdCode_UD"] = string.Empty;
                                dr["ProdCode_SAP"] = dgr["Column1ProdCode_SAP"];
                                dr["BaseUnit"] = dgr["Column1BaseUnit"];
                                dr["wgtUnit"] = dgr["Column1WgtUnit"];
                                dr["wgtUnitRate"] = dgr["Column1WgtUnitRate"];
                                dr["AuxUnit"] = dgr["Column1AuxUnit"];
                                dr["AuxUnitRate"] = dgr["Column1AuxUnitRate"];
                                dr["MinUnit"] = dgr["Column1MinUnit"];
                                dr["MinUnitRate"] = dgr["Column1MinUnitRate"];
                                dr["TaxRateCode"] = dgr["Column1TaxRateCode"];                            dtMaster.Rows.Add(dr);
                                
                                this.dgvSource.Rows.Remove(dgr);
                            }这是我的代码,(我要做的功能是从第一个grid选择一行或多行点击一个按钮把选择的多行移动到第二个grid中。)移动到第二个后我想把第一个grid选择的行给删除了,问题就出在这里。不知道怎么删除,this.dgvSource.Rows.Remove(dgr);
    dgvSource 是个gridControl 他没有.Rows.Remove
      

  8.   

    通过gridView1.GetSelectedRows()方法可以得到选中行的行号数组,之后循环该数组进行复制或删除,非常简单啊。
      

  9.   

    但是我的那个按钮是在grid外面
      

  10.   

    或者换个思路,你点击按钮进行了两个操作:把选择的数据从A表删除,插入到B表。如果这样的话,重新查询A表不就可以了么?