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

    UserControl che eredita da un altro UserControl

    Salve a tutti,
    come da topic ho la necessità di creare uno UserControl che eredita da un altro UserControl da me creato.
    Il problema che ho è che quando dico al figlio di ereditare dal padre, ottengo l'errore che manca un "using" o un riferimento all'assembly del padre.

    Sapete come è possibile?

    aggiungo che non si tratta di uno UserControl "visivo", ma solo di codice C#.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Creo il WebUserControl nella directory App_Code come da esempio (ha solo una proprietà pubblica)
    codice:
    Public Class WebUserControl1
        Inherits System.Web.UI.UserControl
    
        Private _Nome As String = ""
        Public Property Nome() As String
            Get
                Return Me._Nome
            End Get
            Set(ByVal value As String)
                Me._Nome = value
            End Set
        End Property
    
    End Class
    Creo in una qualunque directory il WebUserControl che eredita dal primo

    codice:
    <%@ Control Language="VB" AutoEventWireup="false" CodeFile="WebUserControl.ascx.vb" Inherits="prove_WebUserControl" %>
    codice:
    Option Strict On
    Imports l = libreria.ModuloWeb
    
    Partial Class prove_WebUserControl
        Inherits WebUserControl1
    
        Private _Cognome As String = ""
        Public Property Cognome() As String
            Get
                Return Me._Cognome
            End Get
            Set(ByVal value As String)
                Me._Cognome = value
            End Set
        End Property
    
    End Class
    ho aggiunto la proprità Cognome.
    Questa classe eredita pure la proprietà Nome

    La pagina di collaudo
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="a.aspx.vb" Inherits="prove_a" %>
    
    <%@ Register src="WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <uc1:WebUserControl ID="WebUserControl1" runat="server" Nome="Pinco" Cognome="Pallino" />
        </div>
        </form>
    </body>
    </html>
    codice:
    Option Strict On
    Imports l = libreria.ModuloWeb
    
    Partial Class prove_a
        Inherits System.Web.UI.Page
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            l.PrintLn(Me.WebUserControl1.Nome & " " & Me.WebUserControl1.Cognome)
        End Sub
    End Class

    ps. :master: a che serve un UserControl non visuale? (mai visto un esempio in giro)
    Pietro

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ps. :master: a che serve un UserControl non visuale? (mai visto un esempio in giro)
    forse a fungere a mo' di include con Subs e Functions ? :master:

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    forse a fungere a mo' di include con Subs e Functions ? :master:
    :master: una classe normale? non è meglio?
    Pietro

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da pietro09
    :master: una classe normale? non è meglio?
    forse sono ragioni di studio, o di progetto.

    Klynas toglici la curiosità

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    http://web.tiscali.it/archivio_esemp..._ereditati.zip

    Ho messo due prove.

    In prova_1.1 c'è un progettino fatto con Visual Studio 2003, framework 1.1.

    C'è un user control e un'altro user control che deriva dal primo

    E' molto semplice e intuitivo e funziona bene.


    In prova3.5 c'è la conversione per il framework 2 fatta con visual studio 2008.

    Qui però la faccenda cambia. E' abbastanza poco intuitivo.
    Da quello che ad una rapida occhiata mi sembra di vedere, i controlli utenti e le pagine sono dentro il Namespace prova e credo che non funzioni se si toglie.

    Il controllo utente che eredita deve avere un riferimento al primo:

    <%@ Reference Control="~/controlli_utente/WebUserControl1.ascx" %>

    Addiritura è importante l'ordine

    INSOMMA, UN CASINO

    Pietro

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    CodeFileBaseClass ??

    ma fa sul serio ?

    mi sa di 'conversione tutta a modo nostro ma funziona anche in modo tradizionale'

  8. #8
    Originariamente inviato da pietro09
    :master: una classe normale? non è meglio?
    Beh il controllo che mi hai postato in effetti non è una classe? La differenza è che eredita da UserControl e ciò mi serve con il late binding e il polimorfismo.

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da kylnas1
    Beh il controllo che mi hai postato in effetti non è una classe? La differenza è che eredita da UserControl e ciò mi serve con il late binding e il polimorfismo.
    hai scelto questa linea per studio o per esigenze di progetto ?

  10. #10
    Originariamente inviato da djciko
    hai scelto questa linea per studio o per esigenze di progetto ?
    esigenze di progetto.

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.