我用这个,string k = DetailsView1.Fields[8].ToString()
结果获取了这个字段的绑定名称,晕,我要的是textbox中用户输入的值。

解决方案 »

  1.   

    ((TextBox)e.Item.Cells[1].FindControl("txtPrice")).Text;
    先找到要得到DataGrid的Cell,然后用FindControl找到这个控件,要把这个cell转化成TextBox
      

  2.   

    ((TextBox)e.Item.Cells[8].FindControl("controlname")).Text;
      

  3.   

    我没有用模板,用模板倒是可以FindControl.,顶。
      

  4.   

    到底有没有解决?
    woanon(嗳老虎游) 是楼主吗?
      

  5.   

    不是老虎,
    解决了
    用rows.cells.controls[1]
      

  6.   

        protected void DetailsView2_Init(object sender, EventArgs e)
        {
            this.DetailsView2.DefaultMode = DetailsViewMode.Insert;    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            this.DetailsView2.Rows[0].Cells[1].Text="1";
        }//赋值
        protected void DetailsView2_ItemCommand(object sender, DetailsViewCommandEventArgs e)
        {
            if (e.CommandName == "Insert")
            {
                SqlDataSource3.InsertCommand = "insert into T1 ([f1],[f2],[f3]) values ( " + this.DetailsView2.Rows[0].Cells[1].Text + ",' " + ((TextBox)(this.DetailsView2.Rows[1].Cells[1].Controls[0])).Text + "',' " + ((TextBox)(this.DetailsView2.Rows[2].Cells[1].Controls[0])).Text + "')";
                GridView3.DataBind();
            }//将用户输入和前面赋值的,保存到数据库。
        }
    }
    ----
    确认可行。
      

  7.   

    另外,如果想从gridview1中取一个字段赋值给另一表的detailsview的一个字段,并实现可保存,方法是:可在第一个gridview中设置datakeyname为该字段,在另一表的detailsview的sqldatasource中进行设置,添加参数为第一个gridview中的那个datakeyname。
      

  8.   

    csdn的结帖制度,可能导致草率结帖,以前我提出过这意见,但csdn的人视若无睹充耳不闻,显得很有范儿。
      

  9.   

    ((TextBox)(this.DetailsView2.Rows[2].Cells[1].Controls[0])).Text请问楼主,这句话转成VB.NET应该怎么写啊