2016-08-24 3 views

答えて

0

をいくつかmethodesを試してみましたが、これは私のコードですが、私はのHiddenFieldを見つけるカントと私がnull例外error.Anyヘルプは高く評価されました

protected void InnerGrid_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
{ 
    InnerGrid.EditIndex = -1; 
    HiddenField hdCaID = InnerGrid.Rows[e.RowIndex].FindControl("hdCaID") as HiddenField; 
} 

を動作しません。あなたが隠しフィールドを見つけるためにしようとしているCell

int i = e.RowIndex; 
HiddenField hdCaID = InnerGrid.Rows[i].Cells[1].FindControl("hdCaID") as HiddenField; 

ここでは完全な例である、背後にあるコード:

public partial class GridViewCancel : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostBack) 
     { 
      BindData(); 
     } 
    } 

    public void BindData() 
    { 
     var c1 = new Customer { HiddenID = 11, FirstName = "Name1", LastName = "Surname1" }; 
     var c2 = new Customer { HiddenID = 22, FirstName = "Name2", LastName = "Surname2" }; 
     var c3 = new Customer { HiddenID = 33, FirstName = "Name3", LastName = "Surname3" }; 

     InnerGrid.DataSource = new List<Customer> { c1, c2, c3 }; 
     InnerGrid.DataBind(); 
    } 

    protected void InnerGrid_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     InnerGrid.EditIndex = e.NewEditIndex; 
     BindData(); 
    } 

    protected void InnerGrid_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
    { 
     int i = e.RowIndex; 
     HiddenField hdCaID = InnerGrid.Rows[i].Cells[1].FindControl("hdCaID") as HiddenField; 
     if (hdCaID != null) 
     { 
      string value = hdCaID.Value; 
     } 

     InnerGrid.EditIndex = -1; 
     BindData(); 
    } 
} 

.ASPX:

<asp:GridView ID="InnerGrid" runat="server" AutoGenerateEditButton="True" AutoGenerateColumns="false" OnRowCancelingEdit="InnerGrid_RowCancelingEdit" OnRowEditing="InnerGrid_RowEditing"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:HiddenField ID="hdCaID" runat="server" Value='<%# Eval("HiddenID") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="FirstName" /> 
     <asp:BoundField DataField="LastName" /> 
    </Columns> 
</asp:GridView> 
関連する問題