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