Panel中的ASP.NET Image Control

时间:2010-09-14 05:48:57

标签: c# asp.net visual-studio-2008

我有一个面板控件,我可以从代码中添加图像控件。

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'”

为什么?请帮忙。

2 个答案:

答案 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]