如何从另一个子控件访问父控件的子控件



>我有一个中继器控件来显示指定文件夹中的一些图片。中继器具有和图像,内部有一个按钮以删除该图像。但是问题是如何在按钮单击事件中到达该图像名称的?这是我下面的代码:

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
    }

使用 Button的 CommandName、CommandArgument 和 OnCommand 属性。

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>

最新更新