Avatar billede ameq Nybegynder
05. januar 2006 - 18:36 Der er 11 kommentarer og
1 løsning

User control i en repeater

Hej
Jeg har en repeater som jeg henter noget data om en gruppe ud i, i de her gruppe har jeg noget medlemmes data. Så tænke jeg på om man kunne lave en user constrol med en egenskab hvor jeg sætte en medlemmesid også i den design/opsætter medlemmets profil (med billede og navn) også tilføje den her usercontrole ind i repeaten.

Kan man det?
hvis ja hvordan lige så?
Avatar billede snepnet Nybegynder
05. januar 2006 - 21:43 #1
hej ameq

i version 1.X er der ikke designunderstøttelse for usercontrols (altså på den side hvor du bruger dem).

jeg forstår heller ikke helt hvorfor du vil sætte et medlemsid i designeren... det giver ikke rigtig nogen mening synes jeg?

du kan lave custom controls med designerunderstøttelse, men det kan godt blive en stor opgave.

mvh
Avatar billede ameq Nybegynder
06. januar 2006 - 08:24 #2
ja det havde jeg også tænkt på, eller lave en klasse som nedarve fra en webcontrole

men jeg har en del data om medlemmet og det skal sætte op på en helt bestem måde så det kunne være fedt hvis der var en nemt måde at fixe det på.

Det hele kommer fra at jeg har de her grupper.
I være gruppe er der x antal medlemmer, så få være gang reaperten har hentet en grupppe ud skal den også loop alle medlemmerne ud. Kan jeg fixe det på en smart måde. Måske ved at sætte en nye reaperter ind? også FindControle på den?
Avatar billede snepnet Nybegynder
06. januar 2006 - 12:52 #3
du kan snildt lægge en repeater ind i en repeater:
eksemplerne vælter frem her:
http://www.google.dk/search?hl=da&q=asp.net+nested+repeaters&meta=
mvh
Avatar billede ameq Nybegynder
07. januar 2006 - 15:39 #4
men hvis nu jeg skal bruge et id fra den "første" repeater nede i den "anden"
Avatar billede snepnet Nybegynder
07. januar 2006 - 15:53 #5
ja ... hvad så?

det er helt almindeligt at du skal bruge et id fra dit ydre repeater item til at finde data til det indre repeater item - jeg tror ikke det er nogle af de eksempler du finder via google-searcen der ikke har det med, så hvad er dit spørgsmål helt præcist?

mvh
Avatar billede ameq Nybegynder
08. januar 2006 - 11:54 #6
som jeg har kodet mit logik lag så har jeg en klasse som hedder gruppe den har så et id, jeg har så en medarbejder som hat et gruppeid i sin klasse. I min manager til min medarbejder har jeg en List<Medarbejder> HentAlleMedarbejder(int Gruppeid) metode som giver mig eller medarbejderne i en gruppe. Men jeg skal så bruge gruppe idet fra den første repeater nede i min "DateItemBound" så jeg kan sætte DataSource på den anden repeater
Avatar billede ameq Nybegynder
08. januar 2006 - 11:55 #7
men andre ord:
Hvordan typecaster jeg mit System.Web.UI.WebControls.RepeaterItemEventArgs e til at være et Gruppe obj. så jeg kan bruge gruppeidet
Avatar billede snepnet Nybegynder
08. januar 2006 - 12:59 #8
der er flere måder at gøre det på, men hvis du tager det første eksempel fra google-søgningen, så er der en databound-metode som følger:

private void CategoryRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    RepeaterItem item = e.Item;
    if( (item.ItemType == ListItemType.Item) ||
        (item.ItemType == ListItemType.AlternatingItem) )
    {
        PlayerRepeater = (Repeater) item.FindControl("PlayerRepeater");
        DataRowView drv = (DataRowView)item.DataItem;
        PlayerRepeater.DataSource = drv.CreateChildView("category_cricketer");
        PlayerRepeater.DataBind();
    }
}

den kan du omskrive en smule til noget i denne stil:

private void CategoryRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    RepeaterItem item = e.Item;
    if( (item.ItemType == ListItemType.Item) ||
        (item.ItemType == ListItemType.AlternatingItem) )
    {
        Repeater medarbejderRepeater = item.FindControl("PlayerRepeater") as Repeater;
        Gruppe gruppe = item.DataItem as Gruppe;
        medarbejderRepeater.DataSource = Medarbejder.HentAlleMedarbejdere(gruppe.Id);
        medarbejderRepeater.DataBind();
    }
}

mvh
Avatar billede ameq Nybegynder
08. januar 2006 - 17:58 #9
offtopic kan du typecast ved at skrive as ?
og ja det var noget i den stil som jeg søgte
Avatar billede snepnet Nybegynder
08. januar 2006 - 18:20 #10
ja - as er en fin operator at benytte, og gør at følgende :

Gruppe gruppe = item.DataItem as Gruppe;

ikke giver dig en runtimefejl hvis castet kikser - gruppe vil bare være null... såhh... normalt vil det være noget i denne stil du skriver:

Gruppe gruppe = item.DataItem as Gruppe;
if(gruppe != null)
{
  // gør noget med gruppe
}

mvh
Avatar billede ameq Nybegynder
08. januar 2006 - 19:01 #11
okey nice i forhold til at _gruppe = (Gruppe)item.DataItem

men kommer du med et svar?
Avatar billede snepnet Nybegynder
08. januar 2006 - 19:06 #12
ja - det er en fin lille operator :o)
mvh
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