Asp.net 从目录绑定列表视图中的数据
我有一个列表视图:Asp.net 从目录绑定列表视图中的数据,asp.net,vb.net,listview,bind,vb.net-2010,Asp.net,Vb.net,Listview,Bind,Vb.net 2010,我有一个列表视图: <asp:ListView ID="ListView1" runat="server"> <ItemTemplate> <asp:ImageButton ID="ImageButton1" runat="server" /> </ItemTemplate> </asp:ListView> 我从目录中获取链接和文件名,而不是从数据库中
<asp:ListView ID="ListView1" runat="server">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" />
</ItemTemplate>
</asp:ListView>
我从目录中获取链接和文件名,而不是从数据库中获取……那么如何在列表视图中绑定这些链接以显示所有图像呢?将图像路径绑定到
列表视图的一种方法是在Eval()
绑定中使用一个包含公共属性的对象,如下所示:
<asp:ListView ID="ListView1" runat="server">
<ItemTemplate>
<asp:Image id="Image1" runat="server" ImageUrl='<%# Eval("path") %>' />
</ItemTemplate>
</asp:ListView>
代码隐藏:
Public Class ImageBinder
Public Property path() As String
Get
Return m_path
End Get
Set
m_path = Value
End Set
End Property
Private m_path As String
End Class
您现在需要创建ImageBinder
对象列表的代码,而不仅仅是字符串列表
现在,在标记中,您可以在列表视图
标记中引用路径
属性,如下所示:
<asp:ListView ID="ListView1" runat="server">
<ItemTemplate>
<asp:Image id="Image1" runat="server" ImageUrl='<%# Eval("path") %>' />
</ItemTemplate>
</asp:ListView>
注意:这将考虑绑定,但您必须处理的一个问题是,如果您在问题中提供的示例路径(D:\rbi\images\emotics\
)是正确的,那么它将无法在ASP.NET的范围内工作,由于安全限制,不允许在应用程序的虚拟目录之外使用路径。您需要创建一个虚拟目录,并将其用作希望在列表视图中显示的图像的路径。请尝试以下完整解决方案:
在aspx页面中:
<asp:ListView ID="ListView1" runat="server">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" ToolTip='<%#Eval("Name")%>'/>
</ItemTemplate>
</asp:ListView>
@BhaveshKachhadiya在应用程序中代码在哪里你在绑定列表视图
?@KarlAnderson我没有绑定列表视图:)我的问题是如何将它绑定到字符串列表中的图像路径…@JocelyneElKhoury-你是显示图像列表还是仅显示一个图像列表?@KarlAnderson这是图像列表。。。
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim di As New IO.DirectoryInfo(Server.MapPath("Images/emoticons/"))
Dim diar1 As IO.FileInfo() = di.GetFiles()
Dim dra As IO.FileInfo
Dim FileList As New List(Of IO.FileInfo)
'list the names of all files in the specified directory
For Each dra In diar1
FileList.Add(dra)
Next
ListView1.DataSource = FileList
ListView1.DataBind()
End Sub
Protected Sub ListView1_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound
Dim ImageButton1 As ImageButton
If e.Item.ItemType = ListViewItemType.DataItem Then
Dim rowView As IO.FileInfo = e.Item.DataItem()
Dim FileName As String = rowView.Name.ToString()
ImageButton1 = e.Item.FindControl("ImageButton1")
ImageButton1.ImageUrl = "~/Images/emoticons/" & FileName
End If
End Sub