我有一个数据转发器,我需要根据它们在数据库中的存在来添加x个图像。
我需要在Javascript功能的超链接中添加图像。为了动态添加超链接和图像,我将它们放在数据转发器的面板中,并将它们添加到ItemDataBound事件中。
问题是只有第一张图像被写入datarepeater。
Protected Sub Repeater1_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles myDataRepeater.ItemDataBound
Dim myPanel As Panel = e.Item.FindControl("pnlImages")
Dim myLink As New System.Web.UI.WebControls.HyperLink
Dim myImage As New System.Web.UI.WebControls.Image
Dim myProperty As String = Request.QueryString("ID")
Dim dirInfo As New DirectoryInfo(Server.MapPath("~/ftp/images/"))
Dim fs_infos() As FileInfo = dirInfo.GetFiles("*" + myProperty.Substring(1) + "*")
For Each fs_info As FileInfo In fs_infos
If fs_info.Name.Substring(8, 1) <> "P" Then
myLink.ID = fs_info.Name
myLink.NavigateUrl = "~/ftp/images/" + fs_info.Name
myLink.Attributes.Add("onClick", "return hs.expand(this)")
myLink.Width = 90
myImage.ID = "img" + fs_info.Name
myImage.ImageUrl = "~/ftp/images/" + fs_info.Name
myImage.Width = 80
myImage.Height = 60
myLink.Controls.Add(myImage)
myPanel.Controls.Add(myLink)
End If
Next fs_info
fs_infos = Nothing
End Sub
关于我做错了什么的想法 - 或者更好的做事方式?
答案 0 :(得分:1)
您只创建一个Link和一个Image对象,并在每次迭代时使用它。将myLink和myImage的dims移动到if语句中,一切都应该有效。
答案 1 :(得分:0)
尝试观看此视频,它会显示一些可能有用的代码。
希望这有帮助。