2

我已将图片名称加载到 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();
}
4

1 回答 1

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"/>

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

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

另一种解决方案:您也可以在您的和定义上使用GridView control,绑定此控件DataTabletemplate field

...
<asp:TemplateField>
<ItemTemplate>
<asp:Image id="img" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
...
于 2013-04-22T20:12:26.817 回答