C#:查找 ImageButton 的字符串 ID 并更新 imageURL

本文关键字:ID 更新 imageURL 字符串 查找 ImageButton | 更新日期: 2023-09-27 18:31:57

我需要在 C# 中更新给定 ID 的 imageButton 的 imageURL?我尝试使用:FindControl(),但我得到了一个值作为结果

在 ASPX 页面中

<asp:ImageButton ID="imgBtn1" runat="server" ImageUrl="Cards/1.gif" onClick="Image_Click"/>

在 C# 代码中

ImageButton imgButton = (ImageButton)FindControl("imgBtn1");

我得到img按钮=空

我创建了一个按钮 重置 调用方法btnReset_Click 在此方法中我需要找到 imageButton:

protected void btnReset_Click(object sender, EventArgs e)
{
   ImageButton imgButton = (ImageButton)FindControl("imgBtn1");
}

C#:查找 ImageButton 的字符串 ID 并更新 imageURL

你不需要使用 FindControl("imgBtn1"),因为 Visual Studio 中的设计器应该已经生成了必要的对象供你使用。

您只需键入即可访问它吗:

ImageButton imgButton = imgBtn1; 

也许?

编辑

尝试以下代码,看看它是否适合您:)

    protected void Page_Load(object sender, EventArgs e)
    {
        ImageButton imgButton = FindControl<ImageButton>("imgBtn1", this);
    }
    public T FindControl<T>(string name, Control current) where T : System.Web.UI.Control
    {
        if (current.ID == name && current is T) return (T)current;
        foreach (Control control in current.Controls)
        {
            if (control.ID == name && control is T)
            {
                return (T)control;
            }
            foreach (Control child in control.Controls)
            {
                var ctrl = FindControl<T>(name, child);
                if (ctrl != null && ctrl.ID == name) return ctrl;
            }
        }
        return default(T);
    }