C# 如何在源字符串位于数据库中的web表单中动态添加任意数量的图像?
嗨,我正在尝试设置一个页面,让用户查看特定汽车的详细信息和与汽车相关的照片。到目前为止,我使用sql表保存图像的路径,然后将每个路径作为“ImageUrl”属性分配给我手动创建的img标记 我的问题是:是否有一种方法可以动态创建img标记,并根据表中有多少相关实体分配相应的“ImageUrl”,因为图片的数量会发生变化?如果这是不可能的,谁能提供任何替代方案 我在web表单的其他部分使用的脚本类型有C#、JavaScript和sqlcommand。我在这方面是相当新的,我的搜索只显示了如何在后面的代码中分配ImageUrl,这就是我所做的。提前谢谢你 这是我为img标签准备的:C# 如何在源字符串位于数据库中的web表单中动态添加任意数量的图像?,c#,javascript,asp.net,C#,Javascript,Asp.net,嗨,我正在尝试设置一个页面,让用户查看特定汽车的详细信息和与汽车相关的照片。到目前为止,我使用sql表保存图像的路径,然后将每个路径作为“ImageUrl”属性分配给我手动创建的img标记 我的问题是:是否有一种方法可以动态创建img标记,并根据表中有多少相关实体分配相应的“ImageUrl”,因为图片的数量会发生变化?如果这是不可能的,谁能提供任何替代方案 我在web表单的其他部分使用的脚本类型有C#、JavaScript和sqlcommand。我在这方面是相当新的,我的搜索只显示了如何在后面
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/Default.png" />
<asp:Image ID="Image2" runat="server" ImageUrl="~/Images/Default.png" />
这就是背后的代码:
List<string> folder = new List<string>();
while (readerPhoto.Read())
{
folder.Add(readerPhoto["Folder"].ToString());
}
switch (folder.Count)
{
case 1:
Image1.ImageUrl = folder[0];
break;
case 2:
Image1.ImageUrl = folder[0];
Image2.ImageUrl = folder[1];
//and so fourth.......
List文件夹=新建列表();
while(readerPhoto.Read())
{
folder.Add(readerPhoto[“folder”].ToString());
}
开关(folder.Count)
{
案例1:
Image1.ImageUrl=文件夹[0];
打破
案例2:
Image1.ImageUrl=文件夹[0];
Image2.ImageUrl=文件夹[1];
//所以第四。。。。。。。
08/07/12.新的尝试代码(动态创建图像,但未正确分配“src”属性):
.aspx
Html输出断开的图像图标和脚本,如下所示:
<img id="MainContent_ListView1_imgListImage_0" src="<%%20Eval("Folder")%20%>" style="width: 80px; height: 80px; ">
“style=”宽度:80px;高度:80px;“>
编辑:不知何故,我忽略了您使用的是sql表而不是文件。
编辑2:修复了绑定错误
基本上,您根本不需要任何代码,您需要SqlDataSource和ListView,并将第二个绑定到第一个
.aspx
<asp:SqlDataSource id="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnString%>"
SelectCommand="SELECT * FROM Table">
</asp:SqlDataSource>
<asp:ListView ID="lvImages" runat="server" DataSource="SqlDataSource1">
<ItemTemplate>
<asp:Image ID="imgListImage" runat="server" ImageUrl='<%# Eval("Folder") %>' />
</ItemTemplate>
</asp:ListView>
.aspx
您需要使用数据绑定标记语法(注意
):
感谢您的快速回复。我尝试了您的代码,但“.ReadAll()有点问题"方法。它未被识别,抛出一个错误,指出我需要using指令或程序集引用。intelliSense通常会帮助我解决此问题,我也尝试查找它,但没有成功。我有以下using语句:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;使用System.Web.UI.WebControl;使用System.Configuration;使用System.Data.SqlClient;使用System.Data;代码未正确使用Eval方法。Html将其呈现为;“>请使用您迄今为止提出的代码更新您的问题。@jrummell我确信我键入了它。谢谢
.aspx
<asp:SqlDataSource id="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnString%>"
SelectCommand="SELECT * FROM Table">
</asp:SqlDataSource>
<asp:ListView ID="lvImages" runat="server" DataSource="SqlDataSource1">
<ItemTemplate>
<asp:Image ID="imgListImage" runat="server" ImageUrl='<%# Eval("Folder") %>' />
</ItemTemplate>
</asp:ListView>
<ItemTemplate>
<asp:Image ID="imgListImage" runat="server" ImageUrl='<%# Eval("Folder") %>' />
</ItemTemplate>