Recupero valori di textbox con id dinamico

mercoledì 18 aprile 2012 - 16.12

Scura Profilo | Newbie

Salve a tutti,
all prese con questo divertentissimo asp.net

ho la necessità di avere dei campi di testo con id dinamico

es.
(nell'esempio reale i sono l'id della lingua, ma cambia poco)

For i = 1 to 4

Dim asp_text_box As TextBox
asp_text_box = New TextBox
asp_text_box.ID = i & "_varie"

Next

fino qui tutto a posto, ma come faccio a recuperare il valore di questi campi con id dinamico?

ho provato con:

Dim asp_text_box as String = linguaID & "_varie".Text

ma senza successo

Grazie!!!

massimo.missaglia Profilo | Newbie

Ciao,
prova con il FindControl

Ex.:
TextBox textBox = ((TextBox)row.FindControl("Notestxtbox")) as TextBox;

quindi

Dim Valore = textBox.Text
Massimo Missaglia
-------------------------------
www.MassimoMissaglia.com

Scura Profilo | Newbie

Eccoci, grazie per la risposta, ma non ho capito

riesci ad indicarmi meglio cosa mi suggerisci?

samar Profilo | Senior Member

Ciao,
devi prima inserire i controlli in un contenitore tipo Placeholder,Table, etc, altrimenti non posso essere visti nel postback, la creazione dei controlli e l'inserimento vanno eseguiti in Page_Init.
Per il recupero dei valori ti consiglio di eseguire un ciclo "For Each", dato che non conosci l'Id dei controlli ma il loro tipo si, puoi eseguire un confronto:

For Each tmp_TextBox As Control In PlaceHolder1.Controls If tmp_TextBox .[GetType]().ToString().Equals("Textbox") Then Dim TextBox1 As TextBox = DirectCast(tmp_TextBox , TextBox) recupera= TextBox1.Text End If Next

Scura Profilo | Newbie

per questa volta ho utilizzato i classici <input type="text" ecc
dato che mi fa comodo conoscere il nome dei campi da recuperare

che dite? Grazie per la risposta comunque

massimo.missaglia Profilo | Newbie

Puoi usare anche gli <input> standard ma per accedere da codebehind devi utilizzare gli <asp:Textbox> oppure inserire runat="server" agli input.

Non capisco cosa intendi con "mi fa comodo conoscere il nome dei campi da recuperare"...


Massimo Missaglia
-------------------------------
www.MassimoMissaglia.com

Scura Profilo | Newbie

Ciao! nel mio caso i campi con id dinamico sono dei campi di testo relativi a testi di lingue diverse,

testo_ita, testo_en, testo_de ecc... li creo dinamicamente leggendo nella tabella lingue

mi serve sapere il nome del campo creato per poi andare ad effettuare inserimenti associando i testi al relativo id_ingua,

se non conosco il nome del campo di testo, ho qualche problema poi a fare l'inserimento corretto


tutto qui
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5