2010-07-15 2 views
0

У меня есть ретранслятор данных, к которому мне нужно добавить 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 

Любые идеи относительно того, что я делаю неправильно - или лучший способ сделать что-то?

ответ

1

Вы создаете только одну ссылку и один объект изображения и используете ее для каждой итерации. Переместите dims myLink и myImage в оператор if, и все должно работать.

+0

yep. или внутри вашего цикла есть 'myLink = New ...' и 'myImage = New ...' –

0

попробуйте посмотреть это видео, оно покажет вам некоторый код, который может быть полезен.

DataRepeater

надеюсь, что это поможет.

Смежные вопросы