strGcmcTemp = GvGcmc.Rows[i].Cells[3].Text.ToString().Trim();  
第一行第三列取不到值,用断点跟显示strGcmcTemp =“”;
strTempId = GvGcmc.Rows[i].Cells[2].Text.ToString().Trim();
第一行第二列却可以取到值,求高人指点,以下为代码片段:
 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.   

    就只有Cells[3]取不到值吗?自己调试时看一下该列的字段名是否匹配
      

  2.   

    你可以调试当绑定好后是否有值,如果有再取GvGcmc.Rows[i].Cells[3].Text.ToString().Trim();
      

  3.   

    strGcmcTemp = GvGcmc.Rows[i].Cells[3].Value.ToString().Trim();  
      

  4.   

    加断点先看看GvGcmc绑定的数据
      

  5.   

    怎么看?我找了下,断点后的AccessDataSource1里貌似没有显示的。
      

  6.   

    你的GridView设置AutoGenerateColumns =true了吗?
      

  7.   

    设置AutoGenerateColumns =true后,多出来两列啊
      

  8.   

    关键是这句GvGcmc.DataSource = AccessDataSource1,这个数据源里面有数据吗?是不是查询语句不对,现在这地方设个断点,看看表的count为多少?
      

  9.   

    你可以 GvGcmc.Rows[i].FindControl("")你的那列的控件啊你贴出你的GridView的完整代码就可以看到原因了