是的                TextBox tb=new TextBox();
                tb.ID="tb";
                tb.Width = 20;
                gv.Rows[i].Cells[m - 2].Controls.Add(tb);

解决方案 »

  1.   


            public void resetData(GridView gv)
            {
                int n = gv.Rows.Count;
                if (n < 1)
                {
                    return;
                }
                int m = gv.Rows[0].Cells.Count;
                for (int i = 0; i < n; i++)
                {
                    TextBox tb=new TextBox();
                    tb.ID="tb";
                    tb.Width = 20;
                    gv.Rows[i].Cells[m - 2].Controls.Add(tb);
                    gv.Rows[i].Cells[m - 1].Text = "aa"
                }        }
    在另一个方法里通过gv.rows[i].findControl("tb")找不到,一直都是null
      

  2.   

    前面要加个强制转换(textbox)
      

  3.   

    楼主代码生成的textbox的id都相同了,所以找不到了,
    所以楼主要给生成的textbox 的id都赋不同的值
     TextBox tb = new TextBox();
                    string id="tb"+i.ToString();
                    tb.ID = id;但是,楼主的代码,每一个gv.rows[i]有好多代码生成的TextBox
    还得再加个循环解决id的赋值 
      

  4.   


            public string updateSort(GridView gv,string s)
            {
                int n = gv.Rows.Count;
                int m=gv.Rows[0].Cells.Count;
                string a = "";
                setParam sp = new setParam();
                sp.ParamValues=new string[n];
                for (int i = 0; i < n; i++)
                {
                    sp.ParamValues[i] = gv.Rows[i].Cells[m-2].FindControl("tb")==null?"0":((TextBox)gv.Rows[i].Cells[m-2].FindControl("tb")).Text;
                    a += sp.ParamValues[i]+",";
                }
                return a;
            }返回:0,0,0
      

  5.   

    每行只加一个textbox,跟直接在模板列里面加一个应该是一样的。
    而且我之前有张textbox加了标签,即tb.id="tb"+i.ToString();
    然后进行搜索gv.rows[i].findControl("tb"+i.toString())也是一样找不到。
      

  6.   

    ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1")).Text;
      

  7.   

    前台就一空白gridview,没有模板列啥的。
    aspx.cs文件里面就绑定数据,然后手动添加一列放一个textBox,现在就是要点击页面上一个按钮后将gridview中的texbox的值批量更新到数据库,所以需要获得这个textbox里面的值。
      

  8.   

       Label lbltype = (Label)this.GridView1.Rows[row].Cells[2].FindControl("lblType");
       Label_type.Text = lbltype.Text.ToString();