在gridview绑定方法之后我想通过遍历行来取得每一行的所有值,但是取不到,gridview的AutoGenerateColumns="false" 
大家有办法吗
{在每一行的最后一列我嵌套了一个grideview}StringBuilder strBuilder = new StringBuilder();
            strBuilder.Append("<table>");             foreach(GridViewRow row in this.GridView1.Rows)//在这里遍历时row的cells.count是11,有值
            {
                strBuilder.Append("<tr>");
                foreach (TableCell cell in row.Cells)
                {
                    if (cell != null)
                    {
                        strBuilder.Append("<td>" + cell.Text + "</td>");//cell.text为空 
                    }
                    else
                    {
                        strBuilder.Append("<td></td>");
                    }
                }
                strBuilder.Append("</tr>");
                GridView gv = row.FindControl("GridView2") as GridView;
                if(gv!=null)
                {
                    foreach (GridViewRow gvRow in gv.Rows)
                    {
                        strBuilder.Append("<tr>");
                        foreach (TableCell cell in gvRow.Cells)
                        {
                            if (cell != null)
                            {
                                strBuilder.Append("<td>" + cell.Text + "</td>");
                            }
                            else
                            {
                                strBuilder.Append("<td></td>");
                            }
                        }
                        strBuilder.Append("</tr>");
                    }
                }                
            }             

解决方案 »

  1.   

    就是通过循环每一行来取得整个gridview的所有值
      

  2.   

    不清楚!!!
    以下不就是遍历了吗??
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                for(int j=0;j<GridView1.Columns.Count;j++)
                    Response.Write(GridView1.Rows[i].Cells[j].Text+";");
            }
      

  3.   

    foreach(GridViewRow gr in this.GridView1.Rows)
    {
    GridView gv=gr.FindControl("") as GridView;
    string str = gr.Cells[1].Text;
    }
      

  4.   

    strBuilder.Append("<td>" + cell.Text + "</td>");//cell.text为空 
    应该是cell.FindControl("Control_ID").Text
      

  5.   

    strBuilder.Append("<td>" + cell.Text + "</td>");//cell.text为空
    ==
    楼主打算用cell.Text取值的前提条件是GridView对应字段为<BoundField .../> 如果是<TemplateField ...>必须使用FindControl找到相应控件再取其Text。如果是其他的Field就更麻烦点,还不如用TemplateField
      

  6.   

    StringBuilder strBuilder = new StringBuilder();
                strBuilder.Append("<table>");             foreach(GridViewRow row in this.GridView1.Rows)//在这里遍历时row的cells.count是11,有值
                {
                    strBuilder.Append("<tr>");
                    for(int i=0;i<row.Cells.Count-1;i++)
                    {
                        if (row.Cells[i]!= null)
                        {
                            strBuilder.Append("<td>" + row.Cells[i].Text + "</td>");//cell.text为空 
                        }
                        else
                        {
                            strBuilder.Append("<td></td>");
                        }
                    }
                    GridView gv = row.FindControl("GridView2") as GridView;
                    if(gv!=null)
                    {
                        foreach (GridViewRow gvRow in gv.Rows)
                        {
                            strBuilder.Append("<tr>");
                            for(int j=0;j<gvRow.Cells.Count;j++)
                            {
                                if (cell != null)
                                {
                                    strBuilder.Append("<td>" + gvRow[j].Text + "</td>");
                                }
                                else
                                {
                                    strBuilder.Append("<td></td>");
                                }
                            }
                            strBuilder.Append("</tr>");
                        }
                    }                
                }