C# 动态抓取照片?

C# 动态抓取照片?,c#,javascript,asp.net,sql,css,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" >

我正在尝试在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替换这些硬编码的照片。如何实现这一点?

一个简单的方法:

使用ASP:Image控件

 <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=" " />  
2
。您只需将
runat=“server”
属性放在现有的img标记上,然后在服务器端访问它们并设置它们的url。i、 e将runat=“server”放在您的img上,如下所示

<img id="photo1" runat="server" class="stackphotos" src="photos/4.jpg"  >
3
。您可以在循环中从服务器端动态插入IMG

string imgs = string.Empty;
foreach(var item in GetAllUserImages())
{
     images +="<img src='"+ item.ImageUrl +"' class='stackphotos' />";
}
div1.InnerHtml= images;
string imgs=string.Empty;
foreach(GetAllUserImages()中的变量项)
{
图像+=”;
}
div1.InnerHtml=图像;
div在哪里

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

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

页面:

<%@ 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

}
受保护的无效页面加载(对象发送方,事件参数e)
{
使用(var db=new myDataContext())//请参阅linq到sql/实体框架
foreach(db.ImagesTable.Select(img=>new{Id=img.Id})中的var i//ImagesTable是包含图像信息的表的名称
myimages.Controls.Add(new LiteralControl(@“”);//假定图像是根据数据库中的id命名的
}

你能详细说明第二种方法吗?我尝试了第二种方法,但不起作用。现在我正在尝试第一种方法,但效果jquery效果似乎不再起作用。这是我试图集成的相册。等等?为什么不起作用?可能是你指定的相对url错误。在google chrome中打开页面,检查element,转到控制台查看错误,它必须显示404错误,未找到图像。请更正您的相对URL,即前缀~/或../或删除。当我应用runat=“server”时,它将停止工作。或者,如果您不想更改id,只需在img标记上放置一个属性
clientMode=“static”
,即
<%@ 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

}