我需要在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");
}
答案 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);
}