Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
USER CONTROL
venerdì 26 settembre 2003 - 18.59
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
1234
Profilo
| Newbie
36
messaggi | Data Invio:
ven 26 set 2003 - 18:59
Come si fa a leggere il contenuto di una user control (file .ascx) a partire da una Web form che lo implementa?
Esempio: file ascx contiene TextBox txtNome e txtCognome
nel file web form aspx aggiungo lo user control: come faccio a leggere il contenuto di txtNome?
Grazie per l'aiuto.
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
sab 27 set 2003 - 12:21
allora...
dalla web form, devi fare innanzitutto un Page.FindControl("iddellousercontrol"), per recuperare l'istanza dell'ascx, e quindi fare il cast del Control restituito da questa funzione, nel tipo del tuo controllo (cioè il nome della classe di code-behind dello user control).
[C#]
MyUserControl myAscx = (MyUserControl) Page.FindControl("idascx");
[VB.NET]
Dim myAscx as MyUserControl = DirectCast(Page.FindControl("idascx"), MyUserControl)
una volta che hai l'istanza del tuo usercontrol... puoi riferirti alle sue proprietà, e quindi, qualcosa del genere dovrebbe andare:
string myText = myAscx.txtNome.Text;
dove txtNome è l'istanza della textbox nello usercontrol. Ah... txtNome deve essere dichiarata come public nello usercontrol, o cmq in modo tale da essere visibile da classi esterne.
Spero di esser stato chiaro. In caso di dubbi, riscrivici.
Ciao
Stefano Giannone [MCP .NET]
1234
Profilo
| Newbie
36
messaggi | Data Invio:
sab 27 set 2003 - 17:38
Grazie... riesco ad a raggiungere l'oggetto all'interno dello user control ma ora il problema è che non mi riconosce lo user control nel Web form... ecco il mio codice e il messaggio d'errore:
Premessa: user control = InputData.ascx, id dello user control all'interno della Web Form = InputData1, ho dichiarato public il campo txtInDescription, infatti riesco a raggiungere la sua proprietà Text:
InputData idata = (InputData) Page.FindControl(InputData1);
txtProva.Text = idata.txtInDescription.Text;
Messaggio errore: The name 'InputData1' does not exist in the class or namespace 'MioProgetto.WebForm1'
Devo per caso dichiarare l'oggetto nella parte di codice "Web form Designer generated code"? e come?
Grazie ancora
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
dom 28 set 2003 - 11:55
l'id dello usercontrol deve essere passato come stringa.
prova con:
InputData idata = (InputData) Page.FindControl("InputData1");
txtProva.Text = idata.txtInDescription.Text;
Ciao
Stefano Giannone [MCP .NET]
1234
Profilo
| Newbie
36
messaggi | Data Invio:
dom 28 set 2003 - 16:01
Grazie 1000, ora funziona :)
PEPE
Profilo
| Senior Member
296
messaggi | Data Invio:
mar 18 gen 2005 - 09:29
Salve,
mi rendo conto che il post sia vecchio ma cmq ho unaa piccola richiesta.
Vorrei sapere la teoria che sta dietro alla seguente istruzione
[VB.NET]
Dim myAscx as MyUserControl = DirectCast(Page.FindControl("idascx"), MyUserControl)
A che server il DirectCast ?
Cosa succede quando si fa Page.FindControl("idascx"), MyUserControl ?
Grazie,
Luca.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
dom 23 gen 2005 - 11:18
E' più o meno simile al CType.
Serve per fare un casting, convertire un tipo ad un altro detto banalmente.
Il metodo FindControl ti ritorna se lo trova un generico riferimento ad un oggetto Control.
Se ciò che hai cercato però è un ComboBox per esempio, per poter usarlo al meglio devi usare un CType o un DirectCast per convertire il riferimento al tipo di dati corretto.
ciao
david
Torna su
Stanze Forum
Elenco Threads
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 !