2017-01-25 2 views
0

특정 폴더에서 일부 사진을 표시하는 리피터 컨트롤이 있습니다. 리피터에는 이미지와 이미지를 제거하기위한 단추가 있습니다. 하지만 버튼 클릭 이벤트에서 해당 이미지 이름에 도달하는 방법에 문제가 있습니까?다른 자식 컨트롤에서 부모 컨트롤의 자식 컨트롤에 액세스하는 방법?

영문 파일 :

<asp:Repeater ID="rptImage" runat="server"> 
      <ItemTemplate> 
       <asp:Button id="btnDelete" runat="server" Text="DELETE" OnClick="btnDelete_Click" /> 
       <asp:Image ID="image" runat="server" ImageUrl='<%# Container.DataItem %>' /> 

      </ItemTemplate> 
     </asp:Repeater> 

CS 파일 : 버튼의

private void getImages(string serialNo) 
    { 
     try 
     { 
      string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Images/" + serialNo + "/")); 
      List<String> images = new List<string>(filesindirectory.Count()); 

      foreach (string item in filesindirectory) 
      { 
       images.Add(String.Format("~/Images/" + serialNo + "/{0}", System.IO.Path.GetFileName(item))); 
      } 

      rptImage.DataSource = images; 
      rptImage.DataBind(); 
     } 
     catch (Exception) 
     { 
      header.Visible = true; 

     } 

    } 

    protected void btnDelete_Click(object sender, EventArgs e) 
    { 
     //string imgUrl; 
     //The url of image is all i need to delete it 

    } 

답변

1

를 사용하여 명령 이름, CommandArgument 및 요구시 작동 특성이 아래에있는 내 코드입니다.

protected void Btn_Click(object sender, CommandEventArgs e) 
{ 
    if (e.CommandName == "BtnClick"){ 
     e.CommandArgument.ToString(); 
    } 
} 

<asp:Repeater ID="rptImage" runat="server"> 
     <ItemTemplate> 
      <asp:Button id="btnDelete" runat="server" Text="DELETE" OnCommand="Btn_Click" CommandName="Btn_Click" CommandArgument="<%# Container.DataItem %>" /> 
      <asp:Image ID="image" runat="server" ImageUrl="<%# Container.DataItem %>" /> 
     </ItemTemplate> 
</asp:Repeater> 
+0

리피터 제어에서 이미지 파일의 URL 또는 경로에 관한 정보를 제공하지 않습니다. 더 잘 설명해 주시겠습니까? – CanESER

+0

업데이트 된 게시물을 사용해보십시오. Button의 CommandArgument 속성을 사용해야합니다. – hkutluay

+1

고마워요, 그게 다야! 플래그를 걸어;) – CanESER

관련 문제