Jump to content

obtener valor de textbox creado en tiempo de ejecucion


Recommended Posts

buenas... les cuento...

estoy creando una aplicacion que resuelva la determinante de una matriz de nxn

para ello le pido al usuario que ingrese el valor de n

y luego de eso creo tantas textbox como fuese necesario.. hasta ahy todo bien

el problema se me presenta al momento de querer obtener el valor de esas cajas de texto que aun no han sido creadas.

 

mi duda es y espero me puedan ayudar

 

existe alguna manera de rescatar los datos que estos textbox almacenaran?

 

 

desde ya muchas gracias

saludos

Link to comment
Share on other sites

no me quedo muy claro lo que deseas, pero aca te dejo un ejemplo que se puede "acercar" bastante a lo pedido:

 

<script type="text/javascript">
function add(){
elemento1 = document.createElement('input');
elemento2 = document.getElementById('existente');
value = parseInt(elemento2.getAttribute("total"))+1;
elemento1.type = "text";
elemento1.value = 'Nuevo '+value;
elemento2.setAttribute("total", value);
salto = document.createElement('br');
elemento2.appendChild(elemento1);
elemento2.appendChild(salto);
}
</script>

<div>
<p id="existente" total="0">Elemento existente<br/></p>
</div>

<input type="button" onclick="add();" value="un textbox nuevo">

 

Aclaro que ocupe el metodo appendChild y no innerHTML, porque supongo que sera necesario ocupar el la clase document de tus nuevos textbox.

 

 

saludos y espero que te sirva...

 

P.S: si no es lo que pides, es bastante didactico el codigo asique es cosa de jugar con el...

 

P.S: Si ash ocupe P.S...

Edited by cañangasñangas
Link to comment
Share on other sites

hay un detalle... tienes que generarle un id que puedas referenciar posteriormente utilizando u

alguna lógica... esto, obvio, al momento de generar cada textbox en forma dinámica...

 

por ejemplo, el id del primer textbox será text11, luego sería text12 y así...

 

esa es una alternativa.... la otra, sin usar un id es recorriendo el contenedor donde vas agregando los textbox... tomas cada elemento y le haces un cast a TextBox y ahí puedes recuperar la propiedad text.

 

salu2.

Link to comment
Share on other sites

hay un detalle... tienes que generarle un id que puedas referenciar posteriormente utilizando u

alguna lógica... esto, obvio, al momento de generar cada textbox en forma dinámica...

 

por ejemplo, el id del primer textbox será text11, luego sería text12 y así...

 

esa es una alternativa.... la otra, sin usar un id es recorriendo el contenedor donde vas agregando los textbox... tomas cada elemento y le haces un cast a TextBox y ahí puedes recuperar la propiedad text.

 

salu2.

 

tienes toda la razon.... aqui dejo el codigo arreglado:

 

<script type="text/javascript">
function add(){
elemento1 = document.createElement('input');
elemento2 = document.getElementById('existente');
value = parseInt(elemento2.getAttribute("total"))+1;
elemento1.type = "text";
elemento1.value = 'Nuevo '+value;
elemento1.id = "textbox_"+value;
elemento2.setAttribute("total", value);
salto = document.createElement('br');
elemento2.appendChild(elemento1);
elemento2.appendChild(salto);
}
</script>

<div>
<p id="existente" total="0">Elemento existente<br/></p>
</div>

<input type="button" onclick="add();" value="un textbox nuevo">

Edited by cañangasñangas
Link to comment
Share on other sites

yo crearía un hashmap (en vb se llama HashTable), en el que le asignas un id al textbox como clave y el textbox en si. Luego puedes recuperar el textbox por su id.

 

Pero eso que dices "existe alguna manera de rescatar los datos que estos textbox almacenaran?"

 

no lo entiendo, cómo un computador va a predecir el futuro, si pudieras redactar mejor tu pregunta sería ideal.

 

Saludos.

 

PD: En los tags dice vb.net :facepalm:

Edited by zafrada
Link to comment
Share on other sites

Suponiendo que este sea el foro correspondiente (los usuarios anteriores entendieron que estás haciendo una aplicación web), yo asumo que es una aplicación de escritorio :tonto: ...aquí te dejo un ejemplo en donde uso simplemente un arreglo para guardar varios TextBox, solo hay que preocuparse de agregarlos a un contenedor (en este caso un Panel)

 

Public Class Form1
   Dim CuadrosTexto(99) As TextBox

   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
       Dim a, x, y As Integer

       a = 0
       For y = 0 To 3
           For x = 0 To 3
               CuadrosTexto(a) = New TextBox()
               CuadrosTexto(a).Text = CStr(a + 1)
               CuadrosTexto(a).Location = New Point(x * 40, y * 30)
               CuadrosTexto(a).Size = New Size(35, 20)
               Panel1.Controls.Add(CuadrosTexto(a))
               a = a + 1
           Next
       Next
   End Sub
End Class

 

si quieres poner los TextBox directamente en el formulario, reemplaza la línea

Panel1.Controls.Add(CuadrosTexto(a))

por

Me.Controls.Add(CuadrosTexto(a))

o el nombre del contenedor que vayas a usar.

 

Asutextbox8S4.png

 

También podrías asignarle un nombre a cada TextBox (eso lo agregas tú ;) )

Link to comment
Share on other sites

gracias a todos por darse el tiempo de pasar, leer y/o ayudar... ya solucione el tema... perdon por no haber ido respondiendo a cada una de sus respuestas pero el tiempo no lo permitia...

 

(los usuarios anteriores entendieron que estás haciendo una aplicación web), yo asumo que es una aplicación de escritorio

 

efectivamente es una aplicacion de escritorio, gracias por tu ayuda me sirvio bastante...

gracias a todos por su ayuda

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...