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: 346 | Odgovora: 3 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Shadowed
.NET developer

SuperModerator
Član broj: 649
Poruke: 8680
*.static.sbb.rs.

Sajt: www.diskusije.net


Profil

icon Binding Repeater-a na listu anonimnih tipova05.05.2008. u 13:57

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...
05.05.2008. u 13:57 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1612
195.252.78.*



Profil

icon Re: Binding Repeater-a na listu anonimnih tipova05.05.2008. u 15:54
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.

▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American
05.05.2008. u 15:54 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1612
195.252.78.*



Profil

icon Re: Binding Repeater-a na listu anonimnih tipova05.05.2008. u 16:02
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...
        }


▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American
05.05.2008. u 16:02 

Shadowed
.NET developer

SuperModerator
Član broj: 649
Poruke: 8680
*.static.sbb.rs.

Sajt: www.diskusije.net


Profil

icon Re: Binding Repeater-a na listu anonimnih tipova05.05.2008. u 16:45
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 :)
05.05.2008. u 16:45 

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

[ Pregleda: 346 | Odgovora: 3 ]

Postavi temu Odgovori

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