gridview在第二页时取到第一页第一行值为空,可是从第二行开始又可以取到值,什么原因?string strId = null;
            strId = GvGcmc.Rows[e.RowIndex].Cells[2].Text.ToString().Trim();
            GvGcmc.DataSourceID = null;
            GvGcmc.AllowPaging = false;   //取消分页
            string strGcmcTemp = null;            
            string strTempId = null;
            GvGcmc.DataSource = AccessDataSource1;
            GvGcmc.DataBind();            
            for (int i = 0; i < GvGcmc.Rows.Count; i++) 
            {
                strGcmcTemp = GvGcmc.Rows[i].Cells[3].Text.ToString().Trim();  //取到的值为空
                strTempId = GvGcmc.Rows[i].Cells[2].Text.ToString().Trim();
                
                if (strId != strTempId)               
                {                    
                    if(strGcmcTemp == cell2)
                    {
                        GvGcmc.AllowPaging = true;  //恢复分页
                        Response.Write("<script> alert('该“工程名称”已存在,请重新输入“工程名称”!')</script>");
                        return;
                    }
                }            
            }
            GvGcmc.AllowPaging = true;  //恢复分页

解决方案 »

  1.   

    是整个一行都是你说的“空”
    还是
     strGcmcTemp = GvGcmc.Rows[i].Cells[3].Text.ToString().Trim();  //取到的值为空
    这里这个值为空?建议、断点这里
    GvGcmc.DataSource = AccessDataSource1;
    查看AccessDataSource1里面有没有"空行"
    期待楼下高见。。
      

  2.   

    strGcmcTemp = GvGcmc.Rows[i].Cells[3].Text.ToString().Trim();
    这里第一行取到的值为空strTempId = GvGcmc.Rows[i].Cells[2].Text.ToString().Trim();
    这里第一行取到的值是有值的GvGcmc.DataSource = AccessDataSource1;
    没有空行,取的是主键
      

  3.   

    strGcmcTemp = GvGcmc.Rows[i].Cells[3].Text.ToString().Trim();
    这里第一行取到的值为空(i=0时)strTempId = GvGcmc.Rows[i].Cells[2].Text.ToString().Trim();
    这里第一行取到的值是有值的(i=0时)
    GvGcmc.DataSource = AccessDataSource1;
    没有空行,取的是主键
      

  4.   

    strGcmcTemp = GvGcmc.Rows[i].Cells[3].Text.ToString().Trim();
    这里第一行取到的值为空(i=0时)这句话我理解起来有点费事。。你是想表达第一行第三列值为空吧?
      

  5.   


    strGcmcTemp = GvGcmc.Rows[i].Cells[3].Text.ToString().Trim();  //取到的值为空换成strGcmcTemp = GvGcmc.Rows[i][3].ToString().Trim();  //取到的值为空试试。