2017-01-25 133 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

相關問題