/ / Jak zapętlić się w elementach danych repetytora po odesłaniu do strony - asp.net, c # -4.0, repeater

Jak zapętlić się w elementach danych repeatera po odesłaniu do strony - asp.net, c # -4.0, repeater

Mam przycisk we wzmacniaczu i chcę zapętlić elementy danych wzmacniaka w tym zdarzeniu kliknięcia przycisku. Oto mój kod:

 protected void btnPromotionButton_OnClick(object sender, EventArgs e)
{
try
{
foreach (RepeaterItem item in rptPromotionProducts.Items)
{
if (item.DataItem == null)
{
continue;
}...

A oto mój wzmacniacz:

 <asp:Repeater ID="rptPromotionProducts" runat="server" OnItemDataBound="rptPromotionProducts_OnItemDataBound">
<ItemTemplate>
<li>
<asp:HyperLink runat="server" ID="hlProduct" CssClass="product_image">
<asp:Image runat="server" ID="imgWindow" />
</asp:HyperLink>
<div class="product_info">
<h3>
<a href="#">
<%# Eval("Name") %></a></h3>
</div>
<div>
<asp:Button ID="btnPromotionButton" runat="server" Text="Sepete Ekle" OnClick="btnPromotionButton_OnClick" />
</div>
</div>
</li>
</ItemTemplate>
</asp:Repeater>

item.DataItem zawsze ma wartość null, jednak repeater ma wiersze. Czy jest to możliwe do zapętlenia po stronie i z powrotem?

Odpowiedzi:

2 dla odpowiedzi № 1

Podobne pytania już zostały udzielone tutaj i tutaj.

Krótka odpowiedź na to pytanie brzmi NIE. Nie można uzyskać dostępu do DataItem po odświeżeniu.

Alternatywą dla odzyskania danych będzie użycie pola ukrytego, źródła danych powiązanego z przekaźnikiem lub obiektu sesji zawierającego dane.