Novo

Forum kao aplikacija na telefonu

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

  • 4 odgovora
  • 4.598 pregleda

Najnovija ↓

hyperlink i repeater 17.01.2004. u 00:09 · pre 277 meseci #1
U user kontroli imam jednu repeater kontrolu oblika
<asp:repeater .....>
<headertemplate>.....</>
<itemtemplate>
<asp:hyperlink>......</item...>
<footertemplate>...</footr...>
</asp:repeater>

U code behind klasi se spajam na bazu itd.
Problem nastaje da kada u svojstvo NavigateUrl želim upisati
link oblika index.asp?id=<%# Container.DataItem("id") %>...
dobijem grešku.

Probao sam svakakve verzije ali ni jedna ne valja.

Kad stavim samo ovo onda radi
NavigateUrl= '<%# Container.DataItem("id") %>'

Kako to rješiti.Stvarno mislim da sam sve već probao.

Potpis
Hrvatski Divx Portal
Re: hyperlink i repeater 17.01.2004. u 01:45 · pre 277 meseci #2
Probaj sa

Code:

NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "id")%>'


I meni se slicno desavalo i bas me zanima sta dobijes kada stavis

Code:

NavigateUrl='<%# Container.DataItem("id")%>'


po MSDN-u (Repeater.ItemTemplate Property) sam vidjao i nesto ovako

Code:

...
<ItemTemplate>
    <tr>
        <td> <%# Container.DataItem %> </td>
    </tr>
</ItemTemplate>
...


ovo poslednje nisam probao, ali bas bih voleo da znam razliku...

[Ovu poruku je menjao havramm dana 17.01.2004. u 16:37 GMT]
Potpis
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
Re: hyperlink i repeater 17.01.2004. u 11:54 · pre 277 meseci #3
Citat:
havramm:
Code:

NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "id")%>'

po MSDN-u sam vidjao i nesto ovako

Code:

...
<ItemTemplate>
    <tr>
        <td> <%# Container.DataItem %> </td>
    </tr>
</ItemTemplate>
...


ovo poslednje nisam probao, ali bas bih voleo da znam razliku...


Elem, opet po MSDNu:
DataBinder.Eval uses reflection to parse and evaluate a data-binding expression against an object at run time. This method allows RAD designers, such as Visual Studio .NET, to easily generate and parse data-binding syntax. This method can also be used declaratively on a Web Forms page to simplify casting from one type to another.

Efektivno, po cenu performanse lišava te potrebe da usklađuješ tipove da bi izbegao runtime greške pri izvršavanju stranice. Simplified casting je npr.
Code:
<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>

gde se Price, vorovatno tipa DBType.Currency, konvertuje u string po locale-specific prikazu novčanih iznosa. Bez Eval-a ovaj izraz bi bio nešto nalik na (ovde nemojte da me držite za reč, nije probano, verovatno mu mešto fali :))
Code:
<%# ((System.Double)((((System.Data.DataRowView)(Container.DataItem))["Price"]))).ToString("{0:c}") %>


Zamislite da ovo morate da ukucate za svaki bindable element, bilo bi užasno, te su stoga izmislili DataBinder helper-a.

Nazad na prvobitno pitanje, pošto binding izraz ne mora da bude samo vrednost već može biti i izraz koji daje neku vrednost, samo stavi u hyperlink:

Code:

NavigateUrl='<%# "index.asp?id=" + DataBinder.Eval(Container.DataItem, "id")%>'


Pozdrav
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: hyperlink i repeater 17.01.2004. u 13:45 · pre 277 meseci #4
Hvala čovječe.Produžio si mi živit.Inače ne radi mi sa + nego sa &.
Zar to ne bi trebalo biti isto. ??


Citat:
mmix:
Citat:
havramm:
Code:

NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "id")%>'

po MSDN-u sam vidjao i nesto ovako

Code:

...
<ItemTemplate>
    <tr>
        <td> <%# Container.DataItem %> </td>
    </tr>
</ItemTemplate>
...


ovo poslednje nisam probao, ali bas bih voleo da znam razliku...


Elem, opet po MSDNu:
DataBinder.Eval uses reflection to parse and evaluate a data-binding expression against an object at run time. This method allows RAD designers, such as Visual Studio .NET, to easily generate and parse data-binding syntax. This method can also be used declaratively on a Web Forms page to simplify casting from one type to another.

Efektivno, po cenu performanse lišava te potrebe da usklađuješ tipove da bi izbegao runtime greške pri izvršavanju stranice. Simplified casting je npr.
Code:
<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>

gde se Price, vorovatno tipa DBType.Currency, konvertuje u string po locale-specific prikazu novčanih iznosa. Bez Eval-a ovaj izraz bi bio nešto nalik na (ovde nemojte da me držite za reč, nije probano, verovatno mu mešto fali :))
Code:
<%# ((System.Double)((((System.Data.DataRowView)(Container.DataItem))["Price"]))).ToString("{0:c}") %>


Zamislite da ovo morate da ukucate za svaki bindable element, bilo bi užasno, te su stoga izmislili DataBinder helper-a.

Nazad na prvobitno pitanje, pošto binding izraz ne mora da bude samo vrednost već može biti i izraz koji daje neku vrednost, samo stavi u hyperlink:

Code:

NavigateUrl='<%# "index.asp?id=" + DataBinder.Eval(Container.DataItem, "id")%>'


Pozdrav

Potpis
Hrvatski Divx Portal
Re: hyperlink i repeater 17.01.2004. u 15:03 · pre 277 meseci #5
Citat:
nristic:
Hvala čovječe.Produžio si mi živit.Inače ne radi mi sa + nego sa &.
Zar to ne bi trebalo biti isto. ??


Nije, + se koristi kad ti je stranica u C#-u, a & kad je u vb.net-u. Ja sam (očigledno pogrešno) pretpostavio da radiš u C#-u.

Operator je isti samo se drugačije označava...

Pozdrav
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ć
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme