Avatar billede mike@work Praktikant
23. maj 2006 - 17:11 Der er 13 kommentarer og
1 løsning

Repeater og SeparatorTemplate

Hejsa,

Jeg har opbygget et udtræk via repeater og <DIV>'s.

Min div ligger i Float: Left med en SeparatorTemplate i mellem sig (Som også er Float: Left).

Nu sker der jo det, at når Div'erne når højre side af skærmen, hopper de ned på næste linje, men inden da smider den lige en speratortemplate ud i højresiden af billedet - Det ser dumt ud.

Spædt forsøg på illustation:

<DIV> | <DIV> | <DIV> |
<DIV> | <DIV> | <DIV> |

De to seperatorTemplates helt til højre, kan man ikke få repeateren til at "glemme" dem eller springe dem over ?

/MiB
Avatar billede mike@work Praktikant
23. maj 2006 - 17:13 #1
| = SeparatorTemplate.

Just in case ;)
Avatar billede snepnet Nybegynder
24. maj 2006 - 00:11 #2
Ikke umiddelbart... De skifter linie afhængig af brugerens browserbredde ikke?
Hvis det er tilfældet skal du gøre det clientside, hvor din repeater sådan set overhovedet ikke findes.
Du kan dog hos klienten snable på om brugeren ændrer vinduesstørrelse, og håndtere det ved at kontrollere størrelsen, og selv skjule/vise seperator...
Mvh
Avatar billede snepnet Nybegynder
24. maj 2006 - 00:13 #3
En DataList kan lidt af den slags, men ikke på den måde at du kan få seperators til at vises/skjules hos klienten afh. bredde osv.
Mvh
Avatar billede mike@work Praktikant
24. maj 2006 - 09:37 #4
ok - Men kan jeg ikke runtime sige f.eks.
        if (System.Math.IEEERemainder(CurrentRecordNumber, 3) == 0) {
            // Spring SeperatorTemplate over
        }

Jeg ved bare ikke hvordan jeg trække CurrentRecordNumber ud...
Avatar billede mike@work Praktikant
24. maj 2006 - 09:45 #5
Eller alternativt:
        if (System.Math.IEEERemainder(CurrentRecordNumber, 3) != 0) {
            // Udkriv SeperatorTemplate
        }
Avatar billede snepnet Nybegynder
24. maj 2006 - 10:47 #6
Hvis du abbonnerer på ItemCreated på repeateren, kan du lavet noget i denne stil:

protected void someRepeater_ItemCreated(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Separator && e.Item.ItemIndex%3 == 0)
    {
        e.Item.Controls.Clear();
    }
}

Mvh
Avatar billede mike@work Praktikant
25. maj 2006 - 00:39 #7
ok.. lyder smart - Hvordan "abbonnerer" jeg så på den... !?
Avatar billede snepnet Nybegynder
25. maj 2006 - 00:43 #8
Hvis du bruger Visual Studio eller lignende - markerer du repeateren i designeren og kigger i propertyvinduet.
Øverst i vinduet er der et lille lyn.
Hvis du klikker på det, kan du se de events du kan abbonnere på.
Der dobbeltklikker du på det der hedder ItemDataBound, hvilket giver dig en eventhandler i koden.
Mvh
Avatar billede snepnet Nybegynder
25. maj 2006 - 00:46 #9
Du kan også angive det deklerativt (default i Visual Studio 2005):
OnItemDataBound="SomeRepeater_ItemDataBound"
Og så en handler i koden:

protected void SomeRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
  //...
}

Mvh
Avatar billede mike@work Praktikant
25. maj 2006 - 01:07 #10
Perfekt ;o)

Works like a ... ja - det ved jeg i virkeligheden ikke, men det virker ;o)
Avatar billede mike@work Praktikant
25. maj 2006 - 01:08 #11
Så skal du da ha' point !
Avatar billede snepnet Nybegynder
25. maj 2006 - 01:30 #12
Jamen så skal du ha' et svar :o)
Mvh
Avatar billede mike@work Praktikant
25. maj 2006 - 02:24 #13
jo tak - laver du så et ;o)
Avatar billede snepnet Nybegynder
25. maj 2006 - 10:07 #14
:oD
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