2012-02-10 1 views
0

나는 GridView의 OnRowDeleted 이벤트에서 FindControl()에 HiddenField를 시도하고있다..FindControl() GridView 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를 사용하도록 요구한다. –