Hej. Du skulle kunna prova med följande: Hej. Ok.Hitta en kontroll i repeter Footertemplate
Har läst flera inlägg om just detta men får det bara inte att fungera.
I min repeater har jag två stycken Labels i FooterTemplate som jag vill sätta ett värde på.
Men jag går bet.
Repeterns kod ser ut på följande sätt:
<asp:repeater runat="server" ID="KundvagnRepeater">
<HeaderTemplate>
<table id="KundvagnTable" cellpadding="0" cellspacing="0">
<tr><td class="Header"><img src="../Images/kundvagn.jpg" /></td><td colspan=3 class="Header">Kundvagn</td></tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#DataBinder.Eval(Container.DataItem, "Antal")%> st</td>
<td><%#DataBinder.Eval(Container.DataItem, "Artikel")%></td>
<td>á <%#DataBinder.Eval(Container.DataItem, "Pris")%> kr</td>
<td><%#DataBinder.Eval(Container.DataItem, "Summa")%> kr</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td> </td>
<td><b>Totalsumma:</b></td>
<td> </td>
<td><b><asp:Label ID="TotSumma" runat="server" /> kr</b></td>
</tr>
<tr>
<td> </td>
<td><b>Totalsumma för prenumerationer:</b></td>
<td> </td>
<td><b><asp:Label ID="TotSummaAr" runat="server" /> kr/år</b></td>
</tr>
</table>
</FooterTemplate>
</asp:repeater>
Och i kod behind försöker jag med följande efter mycket läsning:
Dim TotSumma As Label = CType(KundvagnRepeater.FindControl("TotSumma"), Label)
TotSumma.Text = "Kalle"
Jag har gjort databind innan, läste någonstans att det var tvunget.
Den felkod jag får är där jag försöker skriva ut Kalle:
System.NullReferenceException: Object reference not set to an instance of an object
Nu vet jag inte hur jag ska lösa detta på rätt sätt.
Mycket tacksam för en lösning.
/ClasseSv: Hitta en kontroll i repeter Footertemplate
Dim TotSumma As Label = CType(KundvagnRepeater.items(kundvagnrepeater.items.count-1).FindControl("TotSumma"), Label)
För att leta i sista "item:en" i din repeater.Sv:Hitta en kontroll i repeter Footertemplate
Tyvärr hjälpte det inte.
items.count verkar räkna antalet poster i ItemTemplate. Jag kollade med debbugern.
Jag får testa ItemDataBound Event vilket kan bli spännande....
Har nu testat detta och det var enkelt och fungerade klockrent.
Jag gjorde som följer:
I repetern lade jag till OnItemDataBound
<asp:repeater runat="server" ID="KundvagnRepeater" OnItemDataBound="R1_ItemDataBound">
Efter min onLoad event la jag följande sub:
Sub R1_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Footer Then
CType(e.Item.FindControl("TotSumma"), Label).Text = TotPris
CType(e.Item.FindControl("TotSummaAr"), Label).Text = TotPrisAr
End If
End Sub
Gick enklare än vad jag trodde att få till detta och jag lärde mig något nytt.Sv: Hitta en kontroll i repeter Footertemplate
När du lägger in det i ItemDataBound så kan du kolla om e.item.itemtype=footeritem, då ska du hamna rätt.