Avatar billede c-sharp Nybegynder
16. marts 2005 - 10:22 Der er 9 kommentarer og
2 løsninger

Indsætte data i repeater

Hvordan bør man indsætte data i en repeater,indtil nu har jeg gjordt følgende:

<%#(DataBinder.Eval(Container.DataItem, "test")).ToString() %>

Det virker fint men jeg har hørt at det performer meget dårligt fordi den skal bestemme typen hvergang. Men hvordan bør man så indsætte sine data?
Avatar billede jakobg Nybegynder
16. marts 2005 - 17:07 #1
Jeg bruger altid bare
<%# Container.DataItem("test") %>

Så vidt jeg ved er det den mest direkte måde at hive dataene ud på. Og så skal du naturligvis ikke bruge en SELECT * FROM tabel når du henter dine data fra databasen. :)
Avatar billede c-sharp Nybegynder
17. marts 2005 - 10:31 #2
Hvordan fungere det så hvis ikke man skal bruge en SELECT?
Avatar billede jokkejensen Novice
17. marts 2005 - 10:45 #3
han mener bare du ikke skal tage alle rækker i alle tabellerne... altså Select * from xx, xxx, xxxx,

men jeg har også hørt at Databinder.Eval er en performance killer, men kan sku ikke lige huske hvorfor, og har ikke noget alternativ.

MS bruger den selv på msdn.com.
Avatar billede c-sharp Nybegynder
17. marts 2005 - 10:48 #4
Det skulle være en perfomance killer fordi selv skal finde ud af datatypen, så måden at løse det på må være selv at caste den til den rigtige datatype, jeg kan bare ikke få det til at virke :-(
Avatar billede jokkejensen Novice
17. marts 2005 - 10:51 #5
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebuidatabinderclassevaltopic1.asp?frame=true

de skriver det godt nok selv
citat :
"Remarks
While this method is automatically called when you create data bindings in a RAD designer, you can also use it declaratively if you want to simplify the casting to a text string to be displayed on a browser. To do so, you must place the <%# and %> tags, which are also used in standard ASP.NET data binding, around the data-binding expression.

This method is particularly useful when binding data against controls that are in a templated list.

CAUTION  Since this method performs late-bound evaluation, using reflection, at runtime, it can cause performance to noticeably slow compared to standard ASP.NET data-binding syntax.
For any of the list Web controls, such as DataList, DataGrid, or Repeater, the container parameter should be Container.DataItem. If you are binding against the page, the container parameter should be Page
"
Avatar billede jokkejensen Novice
17. marts 2005 - 11:02 #6
c-sharp .. der er en del eksempler på hvordan du type caster den først på nettet.. ex:

http://samples.gotdotnet.com/quickstart/aspplus/doc/webdatabinding.aspx

http://www.google.dk/search?hl=da&q=DataBinder.Eval(Container.DataItem+%2Bperformance&spell=1
Avatar billede c-sharp Nybegynder
17. marts 2005 - 12:57 #7
Har kigget lidt på det du har smidt links til, men synes ikke at jeg kan blive helt klog på de optimale løsning. Jeg har prøvet følgende:
<%#((DataRowView)Container.DataItem)["afdeling"] %>

Jeg ved ikke om det giver en bedre performance
Avatar billede jokkejensen Novice
17. marts 2005 - 13:01 #8
ja ellers er det vist bare at typecaste dem .... eller hvad det nu hedder er ikke så meget inde i fagsproget..

men
<%# (bool)DataBinder.Eval(Container.DataItem, "sandtfalsk") %>
<%# (string)DataBinder.Eval(Container.DataItem, "tekst") %>
<%# (int)DataBinder.Eval(Container.DataItem, "etTal") %>
Avatar billede c-sharp Nybegynder
17. marts 2005 - 14:51 #9
Nå men for at runde det her af, har jeg fundet følgende:

http://support.microsoft.com/default.aspx?scid=kb;en-us;307860#4b

og der står at hvis man bruger <%# ((System.Data.DataRowView)Container.DataItem)["au_id"] %> vil man opnå en anelse bedre performance!

jakobg og jokkejensen smid nogle svar så er der point for jeres kommentare, og tak for jeres tid!
Avatar billede jakobg Nybegynder
17. marts 2005 - 15:08 #10
Svar...
Avatar billede jokkejensen Novice
17. marts 2005 - 15:21 #11
takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester