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

hyperlink i repeater

[es] :: .NET :: hyperlink i repeater

[ Pregleda: 2002 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nristic
Hrvatska

Član broj: 11531
Poruke: 55
*.cmu.carnet.hr

Sajt: www.titlovi.net


Profil

icon hyperlink i repeater16.01.2004. u 23:09

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.


16.01.2004. u 23:09 

havramm
Miroslav Havram
Software Developer / Engineer
Beograd

Član broj: 4603
Poruke: 255
*.proxy.cg.yu



Profil

icon Re: hyperlink i repeater17.01.2004. u 00:45
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]
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!
17.01.2004. u 00:45 

mmix
Miljan Mitrović
Software Architect
Pančevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 4196
193.203.9.*

Sajt: blog.mitrovic.rs


Profil

icon Re: hyperlink i repeater17.01.2004. u 10:54
Laptopovi

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

▪ When the only tool you know how to use is a hammer every problem begins to look like a nail
▪ "Gladni stolećima, kupujemo više hleba nego što nam je potrebno. A, onda ga bacamo. Hleb u đubretu nije dobar prizor. On sluti na zlo. I zlo dolazi" - Momo Kapor
▪ "Opportunity is missed by most because it is dressed in overalls and looks like work" - Thomas Edison
17.01.2004. u 10:54 

nristic
Hrvatska

Član broj: 11531
Poruke: 55
*.cmu.carnet.hr

Sajt: www.titlovi.net


Profil

icon Re: hyperlink i repeater17.01.2004. u 12:45
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


17.01.2004. u 12:45 

mmix
Miljan Mitrović
Software Architect
Pančevo, Srbija

SuperModerator
Član broj: 17944
Poruke: 4196
193.203.9.*

Sajt: blog.mitrovic.rs


Profil

icon Re: hyperlink i repeater17.01.2004. u 14:03
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
▪ When the only tool you know how to use is a hammer every problem begins to look like a nail
▪ "Gladni stolećima, kupujemo više hleba nego što nam je potrebno. A, onda ga bacamo. Hleb u đubretu nije dobar prizor. On sluti na zlo. I zlo dolazi" - Momo Kapor
▪ "Opportunity is missed by most because it is dressed in overalls and looks like work" - Thomas Edison
17.01.2004. u 14:03 

[es] :: .NET :: hyperlink i repeater

[ Pregleda: 2002 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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