Wie eine Schleife im repeater dataitems nach der Seite der post zurück
Habe ich eine Schaltfläche in repeater und ich möchte loop in Daten-Elemente der repeater in das button-Klick-Ereignis. Hier ist mein code:
protected void btnPromotionButton_OnClick(object sender, EventArgs e)
{
try
{
foreach (RepeaterItem item in rptPromotionProducts.Items)
{
if (item.DataItem == null)
{
continue;
}...
Und hier ist mein repeater:
<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>
Element.DataItem ist, kommt immer null, aber der repeater hat Zeilen. Ist das möglich, um eine Schleife nach der Seite post-und zurück?
- Was versuchst du für jede Zeile? Sind Sie versuchen, herauszufinden, welche Zeile geklickt wurde?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ähnliche Fragen bereits gestellt und beantwortet wurde hier und hier.
Die kurze Antwort auf diese Frage ist NEIN. Sie kann nicht auf das DataItem-nach dem postback.
Alternativen, um die Daten abzurufen, wäre eine Versteckte Feld einer DataSource-Verbindung zum Repeater oder ein session-Objekt mit den Daten.
item.FindControl("hlProduct")
). Also ich würde sagen die lange Antwort ist JA, tun Sie es einfach anders. Aber es wäre schön zu wissen, was er zu erreichen versucht.