简体   繁体   English

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

[英]How to access a child control of parent control from another child control?

I have a repeater control to show some pictures from a specified folder. 我有一个中继器控件来显示来自指定文件夹的一些图片。 Repeater has and image and a button inside to remove that image. 中继器具有和图像以及一个用于删除该图像的按钮。 But the problem how to reach that image name in button click event? 但是问题如何在按钮单击事件中达到该图像名称? This is my code below: 这是我的代码如下:

Aspx file: 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 file: 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

    }

Use CommandName, CommandArgument and OnCommand properties of Button. 使用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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM