Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema (di protezione?) con un ItemTemplate e DataList

    Ciao,

    Ho un ItemTemplate all'interno di un DataList.
    All'interno del DataList ho una serie di ImageButton e altri item asp.net.
    Ecco un esempio:
    codice:
    <asp:DataList ID="DataList1" runat="server" Width="100%" DataKeyField="idForum">
         <ItemTemplate>
              <div class="art-sidebar1" style="width: 100%">
                   ...
    
                   <asp:ImageButton ID="img1" runat="server" Visible="false" ImageUrl="img.png" />
    
                   ...
               </div>
         </ItemTemplate>
    </asp:DataList>
    Nella pagina del codice (aspx.vb) non mi riconosce gli item presenti all'interno del DataList o del ItemTemplate.

    L'errore che mi dà è questo:
    "img1 non dichiarato. Non è accessibile a causa del livello di protezione"
    Ad esempio mi esce quando voglio settare la visibilità (img1.Visible = "true")

    Non so proprio come richiamarli nel mio codice per configurarli...
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

  2. #2
    ho risolto in questa maniera... Nella pagina .vb ho dichiarato gli item.

    codice:
    Dim img1 As ImageButton = DirectCast(DataList1.Items(0).FindControl("img1"), ImageButton)
    img1.Visible = "false"
    ...
    Adesso però non riesco ad attribuire un evento per l'immagine. Vorrei che al click eseguisse una query, ma non so come richiamare l'item...
    sembra di essere punto e da capo...

    Help
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

  3. #3
    Devi aggiungere un Handler in maniera dinamica

    codice:
    AddHandler ILTUOOGGETTP, AddressOf SUBDAESEGUIRE
    un esempio è:
    codice:
    Sub TestEvents() Dim Obj As New Class1 ' Associate an event handler with an event. AddHandler Obj.Ev_Event, AddressOf EventHandler ' Call the method to raise the event. Obj.CauseSomeEvent() ' Stop handling events. RemoveHandler Obj.Ev_Event, AddressOf EventHandler ' This event will not be handled. Obj.CauseSomeEvent() End Sub Sub EventHandler() ' Handle the event. MsgBox("EventHandler caught event.") End Sub Public Class Class1 ' Declare an event. Public Event Ev_Event() Sub CauseSomeEvent() ' Raise an event. RaiseEvent Ev_Event() End Sub End Class

  4. #4
    dovresti utilizzare l'evento ItemDataBound che viene chiamato per ogni riga del dataList, quando viene fatto il bound dei dati sulla riga:

    codice:
    Protected Sub DataList1_ItemDataBound(sender As Object, e As DataListItemEventArgs) Handles DataList1.ItemDataBound
        Dim img As ImageButton = DirectCast(e.Item.FindControl("img1"), ImageButton)
        img. ... ...
        ... ...
    End Sub

  5. #5
    Grazie Gluck74,
    stavo per rispondere al post che ho usato la tua soluzione che ovviamente ha funzionato
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.