hacer - texto de fondo en textbox c#
Acceder a texto de cuadros de texto creados dinĂ¡micamente (1)
El problema es que estos cuadros de texto deben volver a crearse en el evento Load
de la página, cada vez, para que tanto los eventos como los valores puedan engancharse y recuperarse.
Creo que el enfoque más directo, en su caso, sería extender la idea # 1 que ya había probado. Cree una List
de estos controles con suficiente información para volver a crearlos en Load
, pero necesita almacenar esa List
en ViewState
o Session
.
ViewState["DynamicControls"] = list;
o
Session["DynamicControls"] = list;
ViewState
si puede porque se destruye cuando el usuario abandona la página.
Me encontré con un problema con mi formulario asp.net.
Dentro de mi formulario, el usuario final elige una cantidad de cuadros de texto para ser creados dinámicamente , todo esto funciona bien con el siguiente código:
protected void txtAmountSubmit_Click(object sender, EventArgs e)
{
int amountOfTasks;
int.TryParse(txtAmountOfTasks.Text, out amountOfTasks);
for (int i = 0; i < amountOfTasks; i++)
{
TextBox txtAddItem = new TextBox();
txtAddItem.ID = "txtAddItem" + i;
txtAddItem.TextMode = TextBoxMode.MultiLine;
questionNine.Controls.Add(txtAddItem);
txtList.Add(txtAddItem.ID);
}
}
Sin embargo, esto también me ha causado un pequeño problema, más adelante, en mi formulario, en el botón Enviar, haga clic en Enviar los resultados a la persona especificada a la que debe ir (usando el correo smtp). De nuevo, esta parte está bien, hasta que estoy tratando de recuperar el texto de estos cuadros de texto creados dinámicamente .
Lo que he intentado
He intentado utilizar este método de identificación de controles de servidor msdn, pero esto no funcionaba.
Traté de agregar estos nuevos cuadros de texto a una lista, sin embargo, no estaba seguro de cómo actualizar estos cuadros de texto cuando tienen texto en ellos. Por lo tanto, mis resultados fueron regresivos nulos debido a esto.
- También he analizado otras preguntas sobre SO, como esta, sin embargo, generalmente son para WPF o winforms, en lugar de mi problema con asp.net (esto generalmente no es un problema, pero no necesito obtener el texto de cada control de cuadro de texto en mi página, solo los que se crearon dinámicamente).
También he intentado cambiar la forma en que llamo al código que esperaba que hubiera funcionado:
string textboxesText = string.Join("/n", txtList.Select(x => x).ToArray());
y luego en mi cadena concatenada (cuerpo de correo electrónico) llamaría:
textboxesText
El problema
Como están creados dinámicamente, me resulta difícil llamarlos por su identificación, por ejemplo: txtExampleID.Text, así como tengo que incrementar los ID por uno cada vez (para que no se anulen entre sí) ha hecho que las cosas un poco mas dificil para mi
No estoy pidiendo una solución de código, preferiría indicaciones en la dirección correcta ya que todavía estoy aprendiendo.
Para resumir todo: necesito obtener el texto de mis cuadros de texto creados dinámicamente para agregarlo a mi cuerpo de correo electrónico.