我有这样的图像:
<asp:Image runat="server" ID="btnabout1" ImageUrl="~/graphics/buttons/btnabout1.png" AlternateText="About" />
我可以像这样(显然)从代码隐藏访问控件:
btnabout1.Visible = false;
但这不起作用:
Page.FindControl("btnabout1").Visible = false;
关键是使用变量 controlID 并设置属性。
我想我对方法的理解有误,请有人赐教。
目的是创建一个方法,该方法采用当前页面的文件名并相应地设置图像/按钮可见/不可见。像这样:
string filename = System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath);
string strippedfilename = filename.Substring(0, filename.IndexOf("."));
Page.FindControl("btn" + strippedfilename + "3").Visible = true;
Page.FindControl("btn" + strippedfilename + "2").Visible = false;
Page.FindControl("btn" + strippedfilename + "1").Visible = false;
由于我无法让 Page.FindControl 工作,我正在使用
Dictionary<string, Control[]>
相反,但当然它不是动态的,因为添加新页面意味着必须添加到字典中,但我想现在还可以......