Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003

    Errore caricamento user control a runtime

    Mi sto rilanciando nel mondo del c# ed incontro subito i primi problemi
    Ho creato uno user control che però potrei aver bisogno di caricare più volte al caricamento della pagina. Allora ho pensato di cercare online qualcosa che mi spiegasse come caricare a run-time ed ho trovato questo articolo

    Il problemino è questo:
    Nella pagina Default.aspx ho il seguente codice:
    codice:
    <%@ Register TagPrefix="myCard" TagName="Card" Src="myUserCard.ascx" %>
    <%@ Page Language="c#" AutoEventWireup="false" CodeFile="default.cs" Inherits="Main"  %>
    mentre nella pagina default.cs ho questo codice:
    codice:
    using System;
    using System.Web.UI;
    
    public partial class Main : System.Web.UI.Page 
    {
    	protected void Page_Load(object sender, EventArgs e) 
    	{
    		Card card = (Card)this.LoadControl("myUserCard.ascx");
    		(Card)card.Titolo = "Titolo card";
    		(Card)card.Testo = "Testo card";
    		cards.Controls.add(card); //cards è un placeholder
    	}
    }
    Ma mi dice che è impossibile trovare il tipo "Card".
    Cos'è che mi sfugge?

    Ah lo user control è fatto così:
    codice:
    <script language="c#" runat="server">
    	public string CardClass="card";
    	public string Titolo;
    	public string Testo;
    </script>
    
    <div class="<%=CardClass%>">
     <div class="cardTitle"><%=Titolo%></div>
     <div class="cardBody"><%=Testo%></div>
    </div>
    Niente di particolare

    Grazie

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Mi sembra di aver capito che nel code-behind non è possibile richiamare direttamente un tipo presente nell'usercontrol.
    Non c'è proprio alcun altra soluzione?

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    C'è qualcosa che non quadra nel tuo esempio.

    Uno UserControl ha anch'esso una rappresentazione HTML, nonché il "code behind" che contiene la definizione della classe.

    Se vuoi riferirti ad uno UserControl nel codice, devi necessariamente fare riferimento alla classe che lo rappresenta.

    Osserva il "code behind" del tuo UserControl e lo scoprirai...

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Originariamente inviato da alka
    C'è qualcosa che non quadra nel tuo esempio.

    Uno UserControl ha anch'esso una rappresentazione HTML, nonché il "code behind" che contiene la definizione della classe.

    Se vuoi riferirti ad uno UserControl nel codice, devi necessariamente fare riferimento alla classe che lo rappresenta.

    Osserva il "code behind" del tuo UserControl e lo scoprirai...

    Ciao!
    Ma sei dapertutto
    Comunque nel mio usercontrol non ho aggiunto codebehind (a meno che non lo faccia automaticamente il framework al momento della compilazione) perchè in effetti (in questo momento sto facendo semplicemente delle prove per imparare) mi serve del codice html da richiamare ogni volta che ne ho bisogno.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da VaLvOnAuTa
    Ma sei dapertutto
    Sono Smith...

    Originariamente inviato da VaLvOnAuTa
    Comunque nel mio usercontrol non ho aggiunto codebehind (a meno che non lo faccia automaticamente il framework al momento della compilazione) perchè in effetti (in questo momento sto facendo semplicemente delle prove per imparare) mi serve del codice html da richiamare ogni volta che ne ho bisogno.
    Una classe a runtime viene comunque creata dal framework. Se vuoi riferirti al tuo UserControl, devi dotarlo di una classe e utilizzare quel tipo per interagire con esso, impostandone le proprietà personalizzate e invocandone i metodi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Originariamente inviato da alka
    Sono Smith...


    Una classe a runtime viene comunque creata dal framework. Se vuoi riferirti al tuo UserControl, devi dotarlo di una classe e utilizzare quel tipo per interagire con esso, impostandone le proprietà personalizzate e invocandone i metodi.

    Ciao!
    Ok, quindi un codebehind, con una classe con delle proprietà anche senza metodi...

    Ma la classe a runtine esiste solo nello script aspx dove viene registrata (nell'esempio specifico in default.aspx)?
    Perchè se in quello script, anzichè usare uno script esterno che contiene la classe, metto lo stesso codice inline, la classe "Card" me la trova.

    Grazie mille agente Smith

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.