У меня есть ретранслятор данных, к которому мне нужно добавить 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
Любые идеи относительно того, что я делаю неправильно - или лучший способ сделать что-то?
yep. или внутри вашего цикла есть 'myLink = New ...' и 'myImage = New ...' –