Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Binding Repeater-a na listu anonimnih tipova

[es] :: .NET :: ASP.NET :: Binding Repeater-a na listu anonimnih tipova

[ Pregleda: 1466 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Binding Repeater-a na listu anonimnih tipova05.05.2008. u 13:57 - pre 194 meseci
Ako imam ovako nesto:
Code:

dim q = from p in db.Persons select p.firstname, p.lastname
rptPersons.DataSource = q.tolist()
rptPersons.DataBind()

Kako u dogadjaju rptPersons_ItemDataBind da dobijem firstname i lastname iz e.Item.DataItem?
Ne mogu da koristim CType kad nemam u sta da konvertujem :)


Edit: izvinjavam se za mala/velika slova, pisao sam direktno u poruci, nije iz vs-a...
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Binding Repeater-a na listu anonimnih tipova05.05.2008. u 15:54 - pre 194 meseci
Ne mozes

Problem mozes da resis na dva nacina.

1. Direktno u ItemTemplate kroz DataBinder koji koristi refleksiju tako da moze da izdriluje u anonymous tip

Code:

    <asp:Repeater ID="rptPersons" runat="server">
        <ItemTemplate>
        <%# DataBinder.Eval(Container.DataItem, "lastname") %>, 
        <%# DataBinder.Eval(Container.DataItem, "firstname")%><br />
        </ItemTemplate>
    </asp:Repeater>


2. Tako sto u LINQu neces instancirati anonymous tipove vec svoje predefinisane klase

Code:


    public class Covek
    {
        public string firstname { get; set; }
        public string lastname { get; set; }
    }

...

            var q = from p in db.Persons select new Covek() {firstname = p.firstname, lastname = p.lastname};
            rptPersons.DataSource = q;
            rptPersons.DataBind();

onda u rptPersons_ItemDataBind mozes da castujes e.Item.DataItem u Covek i da pristupis rezultatu. Btw, ne treba ti .ToList() nad rezultatom, asp.net datasource moze biti IEnumerable tako da linq objekat mozes direktno da bindujes, cim asp.net evaluira enumerable izvrsice SQL skriptu.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Binding Repeater-a na listu anonimnih tipova05.05.2008. u 16:02 - pre 194 meseci
I da, postoji i treca opcija ali ne verujem da ce ti se svideti jer nije "elegantna", al svejedno radi pa da je prikazem

Code:

        protected void rptPerson_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            Type anon = e.Item.DataItem.GetType();
            string firstname = (string)anon.GetProperty("firstname").GetValue(e.Item.DataItem, null);
            string lastname = (string)anon.GetProperty("lastname").GetValue(e.Item.DataItem, null);
            // sta god sad hoces sa ovim...
        }


Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Binding Repeater-a na listu anonimnih tipova05.05.2008. u 16:45 - pre 194 meseci
Za prve dve varijante sam znao, prvu ne volim bas da ubacujem inline.. iako sam ranije uglavnom tako radio, a drugu varijantu sam i iskoristio privremeno (ok, sad se ispostavilo da je za stalno) :)
Za trecu varijantu.. pa znam da moze tako, ali mi nije ni palo na pamet da toliko zapetljavam :)
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: Binding Repeater-a na listu anonimnih tipova

[ Pregleda: 1466 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.