webForumDet fria alternativet

skumt ang. repeater

.NET

7 svar · 399 visningar · startad av Prästen

Medlem sedan dec. 2000537 inlägg
Frågan#1

http://samples.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/aspplus/samples/webforms/customize/datalist1.src&file=CS\DataList1.aspx&font=3

längst ned på sidan:
DataBinder.Eval(Container.DataItem, "title")

vad menas med den?, DataBinder? , men vilken DataBinder?, det finns ju ingen DataBinder som är instansierat med det namnet, den heter ju "MyRepeater". Borde det inte stå: "MyRepeater.Eval(Container.DataItem, "title")" ?.

eller har jag missuppfattat nåt här? :)

Medlem sedan apr. 20012 266 inlägg
#2

DataBinder används som en datahållare i repeatern så den datakällan du angivit kommer du åt genom den. Se dokumentationen för en något bättre beskrivning

DataBinder är dock ett relativt långsamt sätt att hämta sin data på. Container.DataItem är då bättre och snabbare.

Medlem sedan dec. 2000537 inlägg
#3

lite frågor till :)

1. hur skriver man då?.

2. Varför använder han både och i exemplet?.

Medlem sedan apr. 20012 266 inlägg
#4

1. Beror på vad för datakälla man har, om du använder t.ex en array med ojektet Mums gör du så här:

<%# ((Mums)Container.DataItem).Bullar %>

2. Både?

Medlem sedan dec. 2000537 inlägg
#5

Vad är bullar?.

Är Container är en metod som finns i Repeater?.
Som man kommer åt i HTML koden genom att skriva Container.DataItem.

Och för att skriva ut innehållet i ett objekt med repeater i HTML koden så skriver man (objekt)Container.DataItem? . hmm verkar flummigt. ;)

Eller vad är Container och hur hör den ihop med repeatern?, det finns ju inga metoder eller egenskaper i repeatern som heter så. Och den enda DataBinding jag kunde hitta var ett event.

2. DataBinder.Eval(Container.DataItem, "title")

Medlem sedan sep. 20026 425 inlägg
#6

Prästen skrev:

Vad är bullar?

Jag antar att bullar är något inte direkt vidkommande för renholms kod, utan bara ett exempel på hur det kan se ut. mums - bullar: bullar är mums. Fattar'u? ;)

Medlem sedan juni 2000373 inlägg
#7

Nu ska vi se om jag kan förklara lite.
Container.DataItem är det objekt som innehåller datat.
I klassen DataBinder finns en statisk metod (metod som kan anropas utan att man har en instans av klassen) vid namn Eval, som plockar ur en viss databit ur dataobjektet.

Medlem sedan dec. 2000537 inlägg
#8

hmm men Container , borde den inte heta MyRepeater.Container?
för var har Container instansierats nånstans?

254 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)