3.939 messaggi dal 28 gennaio 2003
Mi potreste dire come recuperare una proprietà di un controllo utente in una pagina che utilizza il Codebehind????

27 messaggi dal 31 gennaio 2003
Non ho mai provato...

Però se ti istanzi un oggetto del 'controllo utente' e su di esso richiami la proprietà che ti interessa, che ovviamente deve essere dichiarata Public, dovrebbe funzionare
3.939 messaggi dal 28 gennaio 2003
Vi mando un esempio appena creato:

controllo_utente.ascx
<%@ Control Language="vb" AutoEventWireup="false" Codebehind="controllo_utente.ascx.vb" Inherits="corso_apogeo.controllo_utente" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<asp:TextBox id="TextBox1" runat="server" Width="355px"></asp:TextBox>


controllo_utente.ascx.vb
Public MustInherit Class controllo_utente
    Inherits System.Web.UI.UserControl
    Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox

#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
    Public Property Testo$()
        Get
            Return Me.TextBox1.Text
        End Get
        Set(ByVal Value$)
            Me.TextBox1.Text = Value
        End Set
    End Property


    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

End Class






prova_controllo_utente.aspx
<%@ Register TagPrefix="uc1" TagName="controllo_utente" Src="controllo_utente.ascx" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="prova_controllo_utente.aspx.vb" Inherits="corso_apogeo.prova_controllo_utente"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
    <title>prova_controllo_utente</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  </HEAD>
  <body>
    <form id="Form1" method="post" runat="server">
      <P>
        <uc1:controllo_utente id="Controllo_utente1" runat="server" Testo="Testo immesso in progettazione"></uc1:controllo_utente></P>
      <P>
        <asp:Button id="Button1" runat="server" Text="Imposta valore controllo utente"></asp:Button></P>
      <P>
        <asp:Button id="Button2" runat="server" Text="Recupera valore controllo utente"></asp:Button></P>
    </form>
  </body>
</HTML>


prova_controllo_utente.aspx.vb
Public Class prova_controllo_utente
    Inherits System.Web.UI.Page
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    Protected WithEvents Button2 As System.Web.UI.WebControls.Button

#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

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    End Sub
End Class
27 messaggi dal 31 gennaio 2003
Dichiari nella classe prova_controllo_utente la variabile che identifica l'oggetto del codebehind, ad esempio
Protected Controllo_utente1 As controllo_utente

Poi dove ti serve ...
Controllo_utente1.testo

Dovrebbe andar bene
3.939 messaggi dal 28 gennaio 2003
Ti ringrazio, ma non va
ciao
27 messaggi dal 31 gennaio 2003
Hai ragione, non funziona..
Non riesco a capire bene il perchè, anche perchè è del tutto simile ad una prova che avevo fatto. Appena ho un pò di tempo faccio ulteriori prove (naturalmente se tu dovessi risolverlo, facci sapere  )
3.939 messaggi dal 28 gennaio 2003
darth vader ha scritto:
Hai ragione, non funziona..
Non riesco a capire bene il perchè, anche perchè è del tutto simile ad una prova che avevo fatto. Appena ho un pò di tempo faccio ulteriori prove (naturalmente se tu dovessi risolverlo, facci sapere  )


Forse ho capito: ma se è così, asp.net è uno ... lasciamo perdere.

Ti faccio sapere appena possibile
3.939 messaggi dal 28 gennaio 2003
Allora, da quello che ho capito, per recuperare o impostare proprietà di controlli utente a livello di programmazione da un file di codice sottostante, bisogna:
1) il controllo deve essere creato da codice, e non trascinato nella pagina
2) impostare il parametro @ Reference nella pagina
3) mettere un placeholder dentro il form
4) dichiarare una variabile di tipo control
5) nell'evento load della pagina instaziare la variabile con LoadControl
6) aggiungere il controllo al Placeholder
7) ADESSO SI POSSONO UTILIZZARE O IMPOSTARE LE PROPRIETA' DEL CONTROLLO UTENTE


Ma con Asp.net, non doveva essere tutto più facile? o mi sfugge qualcosa?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.