请问各路大虾,如下代码
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TextBox t=(TextBox)e.Item.Cells[1].Controls[0];
Response.Write(t.Text);

}
得到为什么总是DataGrid对象上绑定的原始值,不是我修改过的值???

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    ds = new DataSet();
    myDataBind();
    }
    void myDataBind()
    {
    SqlConnection con = new SqlConnection(str);
    SqlDataAdapter da = new SqlDataAdapter("select * from Customers",con);
    con.Open();
    da.Fill(ds);
    dt = ds.Tables[0];
    DataGrid1.DataSource = ds.Tables[0].DefaultView;
    DataGrid1.DataBind();
    }
      

  2.   

    (TextBox)e.Item.Cells[1].Controls[1];
    试试!你用了摸板列!
      

  3.   

    ((TextBox)e.Item.FindControl("TextBox1")).Text.Trim();
      

  4.   

    一般来说如果你用的不是模板列但是却使用dg自带的更新方式,那么取更改值应该象 楼上的用findcontrol方法,因为默认的每个cell在更新的时候存在一个隐形的label和一个隐形的textbox你用controls【0】对应的控件是label,这个label的text内容是原来的内容
    你可以尝试用controls【1】试验下
      

  5.   

    我的问题已经解决了,问题在于load事件里没做IsPostBack的判断