动态获取照片?

时间:2013-03-28 08:52:16

标签: c# javascript asp.net sql css

我正在尝试在ASP.NET(C#)中集成JavaScript相册。 我使用的代码使用硬编码图像;我想动态地获取这些图像。

 <div class="image_stack" style="margin-left:300px">
   <img id="photo1" class="stackphotos" src="photos/4.jpg"  >
   <img  id="photo2" class="stackphotos" src="photos/5.jpg" >
   <img  id="photo3" class="stackphotos"  src="photos/6.jpg" > 
 </div>

我想用从数据库中提取的3个网址替换这些硬编码的照片。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

一个简单的方法:

使用ASP:图像控制

 <asp:Image ID="photo1" class="stackphotos" runat="server" ImageUrl=" " />  
 <asp:Image ID="photo2" class="stackphotos" runat="server" ImageUrl=" " />  
 <asp:Image ID="photo3" class="stackphotos" runat="server" ImageUrl=" " />  

然后您可以在服务器端分配ImageUrl,即

var obj= GetUserImages(); //method fetching image urls from db.
photo1.ImageUrl = obj.ImageUrl1;
photo2.ImageUrl = obj.ImageUrl2;
photo3.ImageUrl = obj.ImageUrl3;

2。您只需将runat="server"属性放在现有的img标记上,然后在服务器端访问它们并设置其网址即可。即在你的img上放置runat =“server”,如下所示

<img id="photo1" runat="server" class="stackphotos" src="photos/4.jpg"  >

然后在服务器端访问它,如

photo1.Src = dbObject.Url;

3。你可以在循环中动态地从服务器端插入imgs。

string imgs = string.Empty;
foreach(var item in GetAllUserImages())
{
     images +="<img src='"+ item.ImageUrl +"' class='stackphotos' />";
}
div1.InnerHtml= images;

其中div是

<div id="div1" runat="server">
</div>

4。您可以调用webmethod(.aspx.cs页面上的方法,标有属性[WebMethod]并通过ajax调用它并在javascript函数中更新您的img标记。

答案 1 :(得分:0)

页:

<%@ Page Language="C#" %>
other page content
<asp:PlaceHolder runat="server" ID="myimages" />
other page content

代码背后:

protected void Page_Load(object sender, EventArgs e)
{
using(var db = new myDataContext()) // see linq to sql / entity framework
   foreach(var i in db.ImagesTable.Select(img => new { Id = img.Id }))  // ImagesTable is the name of your table with info about your images
      myimages.Controls.Add(new LiteralControl(@"<img src=""myimgdir/" + i.Id + "".jpg" class=""stackphotos"" />")); // presuming that images are named according to an id in the database

}