Necesito obtener un valor de un cuadro de texto dentro de un FooterTemplate en el evento OnClick de un botón. Mi primer pensamiento fue recorrer los elementos-propiedad en mi repetidor, pero como puede ver en esta muestra, solo incluye los elementos de datos reales, no el pie de página.¿Por qué el pie de página no está incluido en Repeater.Items?
ASPX:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
Item<br />
</ItemTemplate>
<FooterTemplate>
Footer<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:Repeater>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
Code-behind.cs:
protected void Page_Load(object sender, EventArgs e)
{
ListItemCollection items = new ListItemCollection();
items.Add("value1");
items.Add("value2");
Repeater1.DataSource = items;
Repeater1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine(Repeater1.Items.Count);
}
Este código será única salida "2" como el recuento, así que ¿cómo puedo llegar a hacer referencia a mi cuadro de texto dentro de la FooterTemplate ?
El Repeater_ItemDataBound ocurre antes de que el usuario ha introducido ningún texto . ¿Cómo puedo obtener ese texto en el evento OnClick una vez que el usuario ha ingresado el texto? – Espo
Hola Espo Tendrías que escribir un método recursivo para profundizar en Repeater1.Controla la comprobación de colecciones para un cuadro de texto llamado TextBox1. Puede hacerlo más rápido solo mirando primero en el pie de página. –
Ray: Esa es la solución que estoy usando ahora, pero parece "sucio" crear una función recursiva solo para obtener un valor de un cuadro de texto. Esperaba que hubiera una manera más limpia de hacerlo. – Espo