我在里面添加了一个模板列。然后在模板列中放了一个文本框
问题是点击页面上的一个按钮怎样才能
获取文本框中的内容啊
前面几位所说的 Textbox tb = (TextBox)e.item.cell[2].findcontrol("你的textbox的名");
是错的。
我是说在页面上还有一个按钮。比方说(Button)
那这个事件里的e就不对了。
获取不了TextBox 的数据。

解决方案 »

  1.   

    参考如下代码private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {   
        string str = "";
        
        if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem )
        {    
            
            for (int i = 0; i < e.Item.Cells.Count; i++)
            {
                str = str + e.Item.Cells[i].Text;
            }
            e.Item.Attributes.Add("onclick","document.getElementById('TextBox1').value = " + str);
        }
    }
      

  2.   

    Textbox tb = (TextBox)e.item.cell[2].findcontrol("你的textbox的名");这里的e可以是你datagrid中选中的行.
    如下即可:
    Textbox tb = datagrid.SelectedItem.cell[2].findcontrol("你的textbox的名");
      

  3.   

    this.tb.Text = (TextBox)e.item.cell[2].findcontrol("你的textbox的名").Text;
      

  4.   

    DataGrid模板列里的文本框一般也不止一个(取决于数据源),你要取哪一个呢?
      

  5.   

    我已经说了不是DataGrid里的事件Itemcommd里写的。
    不要老是回复那种的呀。e是不正确的。代表的内容不一样
      

  6.   

    我已经说了不是DataGrid里的事件Itemcommd里写的。
    不要老是回复那种的呀。e是不正确的。代表的内容不一样
    --------------------------------------------------
    既然你叫人家不要老回答那个问题  那么你的问题kbxj406(羽儿) ( ) 信誉:100    Blog已经帮你解决了 你难道没看到? 
    Textbox tb = datagrid.SelectedItem.cell[2].findcontrol("你的textbox的名");
      

  7.   

    Textbox tb = datagrid.SelectedItem.cell[2].findcontrol("你的textbox的名");
    应该可以。lz的描述看不懂
      

  8.   

    我觉得也不对·
    一页里面显示十条数据。TextBox文本框都是在第二列上呢。
    我想通过循环把这十条里TextBox文本框里的数据都取出来·
      

  9.   

    我把我在Button按钮里写的代码给你们发出来。
    private void Button1_Click(object sender, System.EventArgs e)
    {
    for(int i = 0;i<DataGrid1.Items.Count;i++)
    {
    TextBox Scores = (TextBox)this.DataGrid1.Item[i].FindControl("txtScores");
    TextBox Believe = (TextBox)this.DataGrid1.Items[i].FindControl("txtBelieveScores");
    TextBox Experience = (TextBox)this.DataGrid1.Items[i].FindControl("txtExperienceScores"); string s = this.DataGrid1.Items[i].Cells[0].Text;
    cmdText = "update commpanymember set Scores=Scores+'"+Scores.Text+"',BelieveScores=BelieveScores+'"+Believe.Text+"',experienceScores=experienceScores+'"+Experience.Text+"' where username='"+s+"'"; MyConnection.Open();
    MyCommand.CommandText = cmdText;
    MyCommand.Connection = MyConnection;
    int Num = MyCommand.ExecuteNonQuery(); MyConnection.Close();
    }
    Response.Write("<script> alert ('更新数据成功')</script>");
    }
    这样取不出来文本框的内容。里面总是空的
      

  10.   

    Textbox tb = (TextBox)e.item.cell[2].findcontrol("你的textbox的名");
    声名 一个 类变量 副一下 不就可以了
    如 str=tb.Text;
      

  11.   

    老大们。我都要疯了。我已经说了不是DataGrid里的事件Itemcommd里写的。
    不要老是带出什么e.item。
    Button按钮里没这个什么e.item
    看清楚了在回答好不好
      

  12.   

    在说一下那个Button按钮不在DataGrid里面。
      

  13.   

    都取出来,那就遍历datagrid
    foreach( DataGridItem gridItem in datagrid1.Items )
    {
    //取每一行的文本框
    }