如何遍历图像src

时间:2013-04-22 20:08:52

标签: c# asp.net webforms

我已经将图片名称加载到aspx上的数据表中,但这是将它们放在页面上的最佳方式....

    private void LoadPics()
{

    Image1.ImageUrl = @"~\Pictures\" + MyClass.dtprop.Rows[0]["name"].ToString();
    Label1.Text = MyClass.dtprop.Rows[0]["name"].ToString();
    Image2.ImageUrl = @"~\Pictures\" + MyClass.dtprop.Rows[1]["name"].ToString();
    Label2.Text = MyClass.dtprop.Rows[1]["name"].ToString();
    Image3.ImageUrl = @"~\Pictures\" + MyClass.dtprop.Rows[2]["name"].ToString();
    Label3.Text = MyClass.dtprop.Rows[2]["name"].ToString();
    Image4.ImageUrl = @"~\Pictures\" + MyClass.dtprop.Rows[3]["name"].ToString();
    Label4.Text = MyClass.dtprop.Rows[3]["name"].ToString();
    Image5.ImageUrl = @"~\Pictures\" + MyClass.dtprop.Rows[4]["name"].ToString();
    Label5.Text = MyClass.dtprop.Rows[4]["name"].ToString();
    Image6.ImageUrl = @"~\Pictures\" + MyClass.dtprop.Rows[5]["name"].ToString();
    Label6.Text = MyClass.dtprop.Rows[5]["name"].ToString();
}

1 个答案:

答案 0 :(得分:2)

您可以根据OfType operator linq

尝试使用此代码
var controls = this.Controls.OfType<Image>();
foreach(var item in controls)
{
  ....
}

如果您希望将它们添加到页面,则可以使用PlaceHolder control

Ph.Contols.Add(yourImage);

您将PlaceHolder设置在目标页面

<asp:PlaceHolder id ="Ph" runat="server"/>

link:http://msdn.microsoft.com/fr-fr/library/system.web.ui.webcontrols.placeholder%28v=vs.80%29.aspx

link:http://msdn.microsoft.com/fr-fr/library/vstudio/bb360913.aspx

另一种解决方案:您还可以使用GridView control,绑定此DataTable上的此控件并定义template field

...
<asp:TemplateField>
<ItemTemplate>
<asp:Image id="img" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
...