是类型转换出错吗??DATAGRID 里面的列是自己生成的还是自己加的?如果列是模版列的话,那么第二个控件才是 TextBoxType(e.item.cell(0).controls(1),TextBox).Text

解决方案 »

  1.   

    are you sure it is Cells(0)??give the textbox an id, then use FindControltextTxtBox.Text= CType(e.item.FindControl("YourTextBoxID"),TextBox).Text
      

  2.   

    Yes!agree saucer! you can use FindControl method!
      

  3.   

    我用的是自动的,怎么知道我更改的TextBox的ID号?
      

  4.   

    比如,我要更改第三行第二列的TextBox,模版是自动的,他的ID号是什么?
      

  5.   

    textTxtBox.Text=CType(e.item.Cells(1).Controls(0),TextBox).Text
    ortextTxtBox.Text=CType(DataGrid1.Items(2).Cells(1).Controls(0),TextBox).Text
      

  6.   

    这样调试过,但是总是出现“指定的转换无效”,或“下标超出范围” 
    堆栈跟踪: 
    [InvalidCastException: 指定的转换无效。]
       testDataGrid.WebForm1.DGxmsz_UpdateCommand(Object source, DataGridCommandEventArgs e) in c:\inetpub\wwwroot\testDataGrid\WebForm1.aspx.vb:72
       System.Web.UI.WebControls.DataGrid.OnUpdateCommand(DataGridCommandEventArgs e)
       System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e)
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
       System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e)
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
       System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
       System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       System.Web.UI.Page.ProcessRequestMain() 
      

  7.   

    textTxtBox.Text=CType(this.DataGrid.Items(this.DataGrid.EditItemIndex).Cells(3).Controls(1),TextBox).Text;
      

  8.   

    我用的是VB.net,“this”不能用。
      

  9.   

    谢谢大家!
    我的代码中
    textTxtBox.Text=Type(e.item.cell(0).controls(0),TextBox).Text
    cell中的索引应该为2以上才不会出错,第一列为“编辑”按钮列,第二列为“删除”按钮,第三列才是我绑定的数据段。