页面代码:
<asp:GridView ID="grv1" runat="server" AutoGenerateColumns="False" 
            onrowcancelingedit="grv1_RowCancelingEdit" onrowdatabound="grv1_RowDataBound" 
            onrowediting="grv1_RowEditing" onrowupdating="grv1_RowUpdating">
    <Columns>
    <asp:BoundField HeaderText="状态" DataField="state" />
        <asp:CommandField ShowEditButton="True" />
    </Columns>
</asp:GridView>
====================================================================
后台代码:
protected void grv1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowIndex==grv1.EditIndex)
        {            
            e.Row.Cells[0].Controls.Clear();
            DropDownList ddl = new DropDownList();
            ddl.Items.Add("已维修");
            ddl.Items.Add("维修中");
            ddl.Items.Add("未维修");
            e.Row.Cells[0].Controls.Add(ddl); 
        }
    }protected void grv1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        DropDownList ddl = (DropDownList)grv1.Rows[e.RowIndex].Cells[0].Controls[0]; // 运行到这里出错了,提示不能将TextBox转换为DropDownList。
        ......
        grv1.EditIndex = -1;
        BindData();
    }

解决方案 »

  1.   

    DropDownList ddl = (DropDownList)grv1.Rows[e.RowIndex].Cells[0].Controls[0]; // 运行到这里出错了,提示不能将TextBox转换为DropDownList。 
    =======>
    使用这种这种插入方法~~
    this.DDL_Cate.Items.Insert(0, new ListItem("请选择", "-1"));
      

  2.   

     DropDownList ddl = (DropDownList)grv1.Rows[e.RowIndex].Cells[0].Controls[0]; // 运行到这里出错了,提示不能将TextBox转换为DropDownList。 是CELLs[0]找索引错了还是Controls[0]找索引错了
      

  3.   

    DropDownList ddl = (DropDownList)grv1.Rows[e.RowIndex].Cells[0].Controls[0];你那个Control肯定是TextBox,所以弄错了最好
    DropDownList ddl = (DropDownList)grv1.Rows[e.RowIndex].FindControl("ddlID");
      

  4.   

    protected void grv1_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            if (e.Row.RowIndex==grv1.EditIndex) 
            {            
                e.Row.Cells[0].Controls.Clear(); 
                DropDownList ddl = new DropDownList(); 
                ddl.Id="aaaaaa1";
                ddl.Items.Add("已维修"); 
                ddl.Items.Add("维修中"); 
                ddl.Items.Add("未维修"); 
                e.Row.Cells[0].Controls.Add(ddl); 
            } 
        } protected void grv1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
        { 
            DropDownList ddl = (DropDownList)grv1.Rows[e.RowIndex].FindControl("aaaaaa1");