Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    chiamare funzione serverside da imagebutton in repeater

    Quel sant'uomo che ha inventato asp.net, ha previsto un modo per chiamare una funzione nel codebehind da un imagebutton in un itemtemplate di un repeater passando un parametro (che nel mio caso sarebbe l'ID di riga del record legato alla riga del repeater)?

    codice:
    <ItemTemplate>
                                <tr>
                                    <td><asp:imagebutton ID="sel" runat="server" ImageUrl="~/images/mag.gif" OnClick='seltratta(<%# eval("ID")%>)' /></td>
                                </tr>
                        </ItemTemplate>
    a me questa non vuole saperne di andare, nel rendering della pagina mi da l'errore seguente
    codice:
    Errore di compilazione
    Descrizione: Errore durante la compilazione di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il codice sorgente.
    
    Messaggio di errore del compilatore: BC30626: L'istruzione 'Namespace' deve terminare con un 'End Namespace' corrispondente.
    
    Errore nel codice sorgente:
    
    Riga 38: Imports System.Xml.Linq
    Riga 39: 
    Riga 40: Namespace ASP
    Riga 41:     
    Riga 42:     <System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()>  _
    Se invece di metterla onclick la metto onclientclick la pagina viene generata correttamente ma il click sull'imagebutton non fa una mazza.
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    120
    La firma della funzione che gestirà l'evento Click dell'ImgButton non viene decisa da te, ovvero non puoi creare un generica funzione seltratta con un singolo parametro numerico ma devi rispettare la firma richiesta dalla definizione dell'evento Click. A quel punto, siccome i parametri non li scegli tu, dovrai mettere nell'evento Click solo il nome della funzione


    Codice PHP:
    <ItemTemplate>
                                <
    tr>
                                    <
    td><asp:imagebutton CommandArgument='<%# eval("ID")%> )' ID="sel" runat="server" ImageUrl="~/images/mag.gif" onClick="seltratta" /></td>
                                </
    tr>
                        </
    ItemTemplate

    codice:
      Protected Sub SelTratta(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles sel.Click
        Dim IDTratta As Int32 = CType(sender, ImageButton).CommandArgument
        ' .......
      End Sub
    Così dovrebbe andare

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    Devo ammettere che la mia ignoranza è causa primaria dei miei casini.
    Ora ho fatto come mi hai suggerito, la logica l'ho compresa e non fa una grinza, però manca ancora qualcosa: nel codebehind, in corrispondenza del "sel" dell'handler (...handles sel.click), il visualwebdeveloper mi segnala che "la clausola handles richiede una variabile withevents definita nel tipo che la contiene o in uno dei suoi tipi di base".... what's this?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    120
    Effettivamente essendo in un TemplateItem la clausola Handles ha problemi, ti basta toglierla
    Tanto nell'ASPX hai la proprietà OnClick che referenzia la funziona corretta


    codice:
      Protected Sub SelTratta(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
        Dim IDTratta As Int32 = CType(sender, ImageButton).CommandArgument
        ' .......
      End Sub

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    grazie!
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.