2012-02-10 6 views
0

私はGridViewのOnRowDeletedイベントでHiddenFieldをFindControl()しようとしています。GridViewの.FindControl()OnRowDeleted?

protected void gridviewPersonPhoto_RowDeleted(object sender, GridViewDeletedEventArgs e) 
{ 
    //string strFileName = (the name of the file that needs to be deleted by System.IO 
    //which i will know after I FindControl() the HiddenField in the deleted row that contains the name) 
} 


<asp:GridView id="gridviewPersonPhoto" DataKeyNames"PersonPhotoId" 
    DataSourceId="sqldatasourcePersonPhoto" OnRowDeleted="gridviewPersonPhoto_RowDeleted"> 
    <TemplateField> 
     <ItemTemplate> 
      <asp:HiddenField ID="hiddenfieldFileName value='<%#Eval("FileName")%>' /> 
      <asp:Button ID="buttonDelete" CommandName="Delete" /> 
     </ItemTemplate> 
     <ItemTemplate> 
      <asp:Image ID="imgPhoto" ImageUrl='<%# "~/pub/photo/"+(Eval("FileName")) %>' runat="server" /> 
     </ItemTemplate> 
    </TemplateField> 
</asp:GridView> 
+0

ここにHTMLコードがありますか? – Aristos

+0

@Aristos、html/aspxを追加 –

答えて

2

このコードをRow_Deletedイベントで試してください。

GridViewRow gvRow= (GridViewRow)(((Button)e.CommandSource).NamingContainer); 
HiddenField HF = gvRow.FindControl("hiddenfieldFileName") as HiddenField; 
+0

これはうまくいきましたが、すぐに簡単な解決策が見つかりました:string FileName = e.Values [0] .ToString();しかし、私はEvalの代わりにBindを使う必要があります。 –

関連する問題