0

我正在尝试在 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 个 URL 替换这些硬编码的照片。我怎样才能做到这一点?

4

2 回答 2

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 标签上,然后在服务器端访问它们并设置它们的 url。即在您的 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 标签。

于 2013-03-28T08:56:21.170 回答
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

}
于 2013-03-28T09:13:07.280 回答