private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string empID=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
string lastName=((TextBox)(e.Item.Cells[2].Controls[0])).Text;
string FirstName=((TextBox)(e.Item.Cells[3].Controls[0])).Text;
string Title=((TextBox)(e.Item.Cells[4].Controls[0])).Text;
跟踪lastName , FirstName, Title修改后值取不到,这是什么问题啊,谢谢

解决方案 »

  1.   


    如下那样取试试:
    private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    TextBox tb = new TextBox();
    tb = (TextBox)e.Item.FindControl("对应的控件ID");
    string lastName= tb.Text;...
    }
      

  2.   

    1.可能是在你执行此过程之前,被你重新绑定过
    2.你确信每行里面只有一个控件而且此控件即为你要取的控件?你可尝试使用
    ((TextBox)(e.Item.Cells[4].FindControl("你控件ID"))).Text
    的方式来取值.
    3.你的datagrid里面各列的控件是以什么模式添加进去的?是自动生成,或是模板列,或是在后台生成?如果是最后者,要注意,在每次页面提交之时,必须重新再生成一次,否则无法保持状态.
      

  3.   

    private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string empID=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
    string lastName=((TextBox)e.Item.Cells[2].Controls[0]).Text;
    string FirstName=((TextBox)e.Item.Cells[3].Controls[0]).Text;
    string Title=((TextBox)e.Item.Cells[4].Controls[0]).Text;这样试下呢,就是去了一对括号。我这样做的话能取到值的