Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.031 pregleda

Najnovija ↓

Binding Repeater-a na listu anonimnih tipova 05.05.2008. u 14:57 · pre 225 meseci #1
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...
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Binding Repeater-a na listu anonimnih tipova 05.05.2008. u 16:54 · pre 225 meseci #2
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.
Potpis
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ć
Re: Binding Repeater-a na listu anonimnih tipova 05.05.2008. u 17:02 · pre 225 meseci #3
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...
        }

Potpis
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ć
Re: Binding Repeater-a na listu anonimnih tipova 05.05.2008. u 17:45 · pre 225 meseci #4
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 :)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme