Bir düğmenin OnClick olayında bir FooterTemplate içindeki bir metin kutusundan bir değer almam gerekiyor. İlk düşüncem tekrarlayıcıda bulunan öğeler-özellik üzerinden dönmekti, ancak bu örnekte de görebileceğiniz gibi, sadece alt öğe değil, gerçek veri maddelerini içerir.Alt öğe niçin Repeater.Items'e dahil edilmiyor?
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" />
Kod-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);
}
Bu kod sadece çıkış "2" sayısı olarak, peki nasıl FooterTemplate içinde benim metin kutusu başvurmak için alabilirim olacak ?
Repeater_ItemDataBound olur kullanıcı herhangi metni girdi önce . Kullanıcı metni girdikten sonra bu metni OnClick etkinliğine nasıl alabilirim? – Espo
Merhaba Espo TextBox1 adındaki bir metin kutusunu kontrol etmek için Repeater1.Controls koleksiyonunu incelemek üzere bir özyineleme yöntemi yazmanız gerekir. İlk önce yalnızca altbilgiye bakarak daha hızlı yapabilirsiniz. –
Ray: Şu an kullandığım çözüm bu, ama sadece bir metin kutusundan bir değer elde etmek için özyinelemeli bir işlev yaratmak için "kirli" görünüyor. Bunu yapmanın daha temiz bir yolu olacağını umuyordum. – Espo