我有一个面板控件,我可以从代码中添加图像控件。
Panel1.Controls.Add(new Image { ImageUrl = String.Format("img/{0}.gif", x) });
然而,当我尝试访问新的图像控件来修改某些属性时,我得到一个文字控件。
即:
Panel1.Controls[0].Width=new Unit(10, UnitType.Pixel);
导致...... “无法将'System.Web.UI.LiteralControl'类型的对象强制转换为'System.Web.UI.WebControls.Image'”
为什么?请帮忙。
答案 0 :(得分:1)
除了图像之外,您的Panel中可能还有更多控件。
尝试迭代它们:
foreach (Control ctrl in Panel1.Controls)
if (ctrl is Image)
ctrl.Width = new Unit(10, UnitType.Pixel);
答案 1 :(得分:1)
在ASP.NET中,始终有一个附加到任何控件的文字控件。所以,如果你通过索引找到它,你会在奇怪的地方找到它,比如Panel1.Controls[1]