C#:找到ImageButton,将其ID作为字符串并更新imageURL

时间:2014-11-25 11:30:55

标签: c# asp.net imagebutton

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

在ASPX页面

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

在C#代码中

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

我正在 imgButton = null

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

protected void btnReset_Click(object sender, EventArgs e)
{

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

1 个答案:

答案 0 :(得分:1)

你不需要使用FindControl(&#34; imgBtn1&#34;),因为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);
    }