Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: ascx e aspx

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127

    ascx e aspx

    ho un file ascx del tipo

    <script language="C#" runat="server">
    string prova
    .....
    label1.Text = prova
    </script>
    <asp:Label id="label1" runat="server"/>

    questo file ascx e rikimato in un file aspx (lang VB).. devo dire ke funziona ..
    soltanto ke io devo aggiungere i dati a un db, e, tra l'altro, mi serve anke il contenuto della label1 contenuta nel file ascx

    xò mi viene errore ke dice ke la label di id: label1 nn esiste, xkè materialmente nel file aspx nn c'è .. come faccio??

    grazie!!

  2. #2

    Re: ascx e aspx

    Originariamente inviato da sms
    ho un file ascx del tipo

    <script language="C#" runat="server">
    string prova
    .....
    label1.Text = prova
    </script>
    <asp:Label id="label1" runat="server"/>

    questo file ascx e rikimato in un file aspx (lang VB).. devo dire ke funziona ..
    soltanto ke io devo aggiungere i dati a un db, e, tra l'altro, mi serve anke il contenuto della label1 contenuta nel file ascx

    xò mi viene errore ke dice ke la label di id: label1 nn esiste, xkè materialmente nel file aspx nn c'è .. come faccio??

    grazie!!
    Puoi utilizzare il codebehind del file *.ascx (e quindi un file *.cs), crearti una classe che oltre al codice per l'inserimento di dati nel db ha una proprietà a sola lettura che ritorna il valore della label.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    forse sono stato poco kiaro..
    il codice x l'inserimento dati nel db è nel file aspx, nn in quello ascx ..

    se va bene nonostante ciò, mi potresti fare un esempio del codice ke nn ho capito molto bene.. grazie

  4. #4
    Originariamente inviato da sms
    forse sono stato poco kiaro..
    il codice x l'inserimento dati nel db è nel file aspx, nn in quello ascx ..

    se va bene nonostante ciò, mi potresti fare un esempio del codice ke nn ho capito molto bene.. grazie
    Te lo scrivo in vb:
    file *.ascx (che richiama il file *.vb che fa da codebehind)
    codice:
    <asp:Label id="label1" runat="server"/>
    file *.vb
    codice:
    Public MustInherit Class pag_DBResult
        Inherits System.Web.UI.UserControl
        Protected WithEvents label1 As System.Web.UI.WebControls.Label
    
        'Variabili di classe che ti servono
        Private prova as string
        ...
    
    #Region " Codice generato da Progettazione Web Form "
    
        'Chiamata richiesta da Progettazione Web Form.
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    
        End Sub
    
        Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: questa chiamata al metodo è richiesta da Progettazione Web Form.
            'Non modificarla nell'editor del codice.
            InitializeComponent()
        End Sub
    
    #End Region
    
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Inserire qui il codice utente necessario per inizializzare la pagina
    
        End Sub
        ...
        'Codice che vuoi
        ...
        Public Property ReadOnly LabelText
           Get
               return label1.Text
           End Get
        End Property
    
    End Class
    Ora nel tuo file *.aspx scrivi qualcosa del tipo (per inserire il tuo controllo):
    codice:
    <tuousercontrol:nometuousercontrol id="idcontrollo" runat="server">
    e poi, quando ti serve sempre nello stesso file
    codice:
    <script language=vb runat="server">
    response.write(idcontrollo.LabelText) 'o quello che ti serve
    </script>
    Se non vuoi creare una proprietà a sola lettura (se ti serve sapere il valore di molte label che hai nel tuo controllo potrebbe essere noioso creare tante proprietà) puoi provare a dichiarare la label all'interno della classe come Public, e non Protected. Di quest'ultima cosa però non sono sicuro.

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    grazie ..

    questo

    Public Property ReadOnly LabelText
    Get
    return label1.Text
    End Get
    End Property

    dopo averlo trasformato in c# poso anke metterlo nella pagina ascx senza codebehind, xkè io dovrei creare un file codebehind solo x queste righe ..

    se si, ke eventuali modifike devo fare??

  6. #6
    Originariamente inviato da sms
    grazie ..

    questo

    Public Property ReadOnly LabelText
    Get
    return label1.Text
    End Get
    End Property

    dopo averlo trasformato in c# poso anke metterlo nella pagina ascx senza codebehind, xkè io dovrei creare un file codebehind solo x queste righe ..

    se si, ke eventuali modifike devo fare??
    Si, puoi inserirlo direttamente nel file *.ascx, senza ulteriori modifiche (se non quella di inserirlo all'interno di tag "script" con runat="server")

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    hai provato con:

    TuaVar = TuoUserControl.TuaLabel.Text

    ?


    Hey hey, my my Rock and roll can never die!

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    scusate se riesumo questo post ..

    ma due domande:

    x Kylnas: il tuo script funzionava benissimo, soltanto ke cosi nn va:
    codice:
    Sub Page_Load
    label1.text = "CIAO"
    End Sub
    + tuo script
    
    ..........
    
    <asp:label id="label1" runat="server" />
    finke impostavo in <asp:label> la proprietà text andava, ora ke lo faccio in page_load nn va + ..

    x zampa
    con cosa devo sostituire TuoUserControl??
    con il nome (tipo file.ascx) oppure con quello ke utilizzo in <%register tag prefix .... %>

  9. #9
    Originariamente inviato da sms
    scusate se riesumo questo post ..

    ma due domande:

    x Kylnas: il tuo script funzionava benissimo, soltanto ke cosi nn va:
    codice:
    Sub Page_Load
    label1.text = "CIAO"
    End Sub
    + tuo script
    
    ..........
    
    <asp:label id="label1" runat="server" />
    finke impostavo in <asp:label> la proprietà text andava, ora ke lo faccio in page_load nn va + ..
    Prova a modificare la proprietà in questo modo:
    codice:
    Public Property LabelText 
    Get
      return label1.Text 
    End Get 
    Set(Value as string)
      label1.Text = Value
    End set
    End Property
    E poi scrivi:
    codice:
    Sub Page_Load
      label1.LabelText = "CIAO"
    End Sub

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127

    accidenti nn va!

    ascx
    codice:
    <script language="VB" runat="server">
    
    Public Property LabelText 
    Get
      return label1.Text 
    End Get 
    Set   
    '*************** Ho dovuto modificare altrimenti mi veniva questo errore
    '************* Il parametro "Set" deve essere dello stesso tipo della proprietà che lo contiene.
    
      dim testo as string
      label1.Text = testo
    End set
    End Property 
    
    Sub Page_Load
      label1.Text = "CIAO"
    End Sub
    
    </script>
    <asp:label id="label1" runat="server" />
    aspx
    codice:
    <%@ Register tagprefix="tua" Tagname="prova" src="prova.ascx" %>
    <tua:prova id="idcontrollo" runat="server" />
    <script language=vb runat="server">
    sub page_load
    response.write("<h1>--------" & idcontrollo.LabelText & "</h1>") 'o quello che ti serve
    end sub
    </script>
    nn va

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.