Creare una classe parziale collegata alla classe default.aspx.cs

lunedì 16 novembre 2009 - 14.29

andrestu Profilo | Expert

esiste la possibilità di creare una classe parziale collegata alla classe predefinita default.aspx.cs?
Cioè io apro VWD2008 express, creo un nuovo sito, a sto punto mi ritrovo la mia default.aspx e il file default.aspx.cs il cui contenuto inizia con

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
}

se io a questo punto creo una nuova classe il cui contenuto è il seguente

public partial class _Default : System.Web.UI.Page
{
}

non creo in questo modo una classe parziale della classe default.aspx.cs? La risposta è no perchè il compilatore al momento dell'esecuzione mi da errori.
In che modo dunque posso crearla?
Il punto è che io vorrei aggiungere una classe che possa utilizzarla come se stessi utilizzando la classe default.aspx.cs, e cioè raggiungere i controlli creati nella default.aspx...

FrancescoGuadagno Profilo | Senior Member

Guarda.. mi sembra strano... qual è l'errore preciso?

andrestu Profilo | Expert

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\website2\a0735ab2\500c2b5e\App_Web_lvodmqo-.0.cs(134,41): avviso CS0436: Il tipo '_Default' in 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\website2\a0735ab2\500c2b5e\App_Web_lvodmqo-.0.cs' è in conflitto con il tipo importato '_Default' in 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\website2\a0735ab2\500c2b5e\App_Code.qnrjaip8.dll'. Verrà utilizzato il tipo definito in 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\website2\a0735ab2\500c2b5e\App_Web_lvodmqo-.0.cs'.

questo messaggio mi compare nella finestrella in basso dell'output di compilazione. Non è un vero e proprio errore ma mi fà presumere che non lha presa come classe parziale...

andrestu Profilo | Expert

aspetta forse sbagliavo una cosa, la classe la inserivo nella cartella App_code e invece metendola nella stessa del file default.aspx.cs sembra non darmi ulteriori messaggi... faccio ulteriori prove

FrancescoGuadagno Profilo | Senior Member

Ok, ma la compilazione ti da errori?

andrestu Profilo | Expert

no ora spostando il file non mi da nessun messaggio e si compila correttamente, l'unica cosa è che mi aspettavo di poter gestire tutto come se fossi nella default.aspx.cs, e cioè ho provato ad inserire all'interno della classe parziale la riga (premetto che ho inserito nella default.aspx un controllo button):

protected void Page_Load(object sender, EventArgs e)
{
Button1.Text = "aaaa";
}

non mi da nessun errore ma non mi cambia neanche il testo del controllo button...

andrestu Profilo | Expert

no scusa è tutto sbagliato.
Allora non mi dava più messaggi perchè evidentemente spostando il file non la compilava, ho avuto un suggerimento di levare il "public" davanti a partial dalla nuova classe quindi verrebbe:

partial class _Default : System.Web.UI.Page
{
}

così funziona senza errori

il punto è che mi aspettavo di raggiungere anche da qui i controlli inseriti nella default.aspx.
Ma se inserisco nella mia classe parziale:

protected void Page_Load(object sender, EventArgs e)
{

}

e poi all'interno dell'evento Page_Load cerco qualche controllo non lo trovo.
e come seconda domanda posso aggiungere da questa classe parziale dei controlli alla mia pagina default.aspx?
Cioè le due cose credo siano collegate non trovandoli forse non posso neanche aggiungerli giusto?

Ho anche provato ad inserire un campo public in default.aspx.cs ma non lo ritrovo nella parziale da me creata, comè possibile? in teoria dovrei trovarlo se sono parziali...
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5