我现在用的是GridView自带的更新模板列,
我在其中一个模板列中添加了HiddenField控件,但
在下面这个时间里面老找不到HiddenField1实例
 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
       
        HiddenField hiden_FitemID = (HiddenField)GridView1.Rows[e.RowIndex].Cells[3].FindControl("HiddenField1");
        if (hiden_FitemID != null)
        {
            int FitemID = int.Parse(hiden_FitemID.Value.ToString());
            string Fname = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[1])).Text.Replace(" ", "").Trim();
            string Details = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[1])).Text.Replace(" ", "").Trim();
            if (Fname == "")
            {
                return;
            }
            else
            {
                if (CSCompany1.UpdatePan(Fname, FitemID))
                {
                    CSCompany1.UpdateCompany(FitemID, Fname, Details);
                    GridView1.EditIndex = -1;
                    FillGridView();
                }
            }
        }
    }

解决方案 »

  1.   

    visiable=false的时候,用这种方法貌似找不到.
    换成Label,display=none试试看.
      

  2.   

    我就是不让他显示才用HiddenField控件的
      

  3.   

    <ItemTemplate>
    <asp:DropDownList ID="ddlSort" runat="server" Width="98%">
        </asp:DropDownList>
    <asp:HiddenField ID="Hd_Sort" runat="server" Value=' <%# Eval("BalSort")%>' />
    </ItemTemplate>
    protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowIndex != -1)
                {  if (e.Row.RowState == DataControlRowState.Edit || e.Row.RowState == (DataControlRowState.Alternate | DataControlRowState.Edit))
                {
                    ((DropDownList)e.Row.FindControl("ddlSort")).SelectedValue = ((HiddenField)e.Row.FindControl("Hd_Sort")).Value;
                }
                }
            }protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
            {
                gv.EditIndex = e.NewEditIndex;
                string strSort = ((DropDownList)gv.Rows[e.NewEditIndex].FindControl("ddlSort")).SelectedValue.Trim();
                gv.EditIndex = -1;
                BindData();
            }
    是否在<EditItemTemplate>中