2017-01-25 11 views
0

私は指定されたフォルダからいくつかの画像を表示するリピータコントロールを持っています。リピーターにはイメージとボタンがあり、そのイメージを削除します。しかし、どのようにボタンのクリックイベントでそのイメージ名に達する問題?他の子コントロールから親コントロールの子コントロールにアクセスする方法は?

ASPXファイル:

<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

利用のCommandName、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

関連する問題