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

相关问题