are you sure it is Cells(3)? not Cells(2)?try
Response.Write(e.Item.Cells(3).Controls(0).GetType().Name)

解决方案 »

  1.   

    try
    strUN = CType(e.Item.Cells(3).Controls(0), TextBox).Text.ToString--->
    strUN = e.Item.Cells(3).Controls(0).Text
      

  2.   

    //更新报价
    public void UpdateCommand(object sender,DataGridCommandEventArgs e)
    { int ID=(int)DGuserofquotedprice.DataKeys[e.Item.ItemIndex];
    string Price= ((TextBox)e.Item.FindControl("EditPrice")).Text;
    try
    {
      Business.BusinessCenter.Seller.QuotedPrice update=new ChemicalProject.Business.BusinessCenter.Seller.QuotedPrice();
      update.Update(ID,Price);
      DGuserofquotedprice.EditItemIndex=-1;
      BindUserofQuotedPrice();
       
      
    }
    catch(SqlException ex)
    {
       throw(ex);
    } }作个参考吧
      

  3.   

    假设DataGrid的某一列声明如下
    <asp:TemplateColumn>
       <ItemTemplate>
          <asp:TextBox Runat="server" ID="txtID" Text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>'>
          </asp:TextBox>
       </ItemTemplate>
    </asp:TemplateColumn>
    读取方法:
    TextBox txt = (TextBox)DataGrid1.Items[1].FindControl("txtID");
    Response.Write(txt.Text);
      

  4.   

    按googy98070的方法解决了,我用的是模板列
      

  5.   

    模板列要先找到模板列中的那个控件
    找那个控件要到它的项里面去找
    我只知道C#的 你看看这个
    foreach (DataListItem dli in this.DataList1.Items)
    {
    Label label=(Label)dli.FindControl("你的控件ID");
    }
    DataListItem 即为DataList的项 
    必须要到项里面去找 要不它怎么知道你要到什么地方去找列