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

ListView dinamicki templejt

[es] :: .NET :: ASP.NET :: ListView dinamicki templejt

[ Pregleda: 1678 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Igor Gajic

Član broj: 93194
Poruke: 747
82.117.203.*



+987 Profil

icon ListView dinamicki templejt08.07.2011. u 15:11 - pre 155 meseci
Potrebno mi je da u kodu setujem ItemTemplate za ListView.

Dakle imam ovakav kod:

Code (csharp):


private void SetTemplate(string template){

   this.listView.ItemTemplate = template;


}
 



Naravno, ovo ne prolazi, posto je ItemTemplate tipa ITemplate. Pri tome string template moze da izgleda ovako:

Code:

<li>
   <%# Eval("Data") %>
  <asp:Literal id="ltrItem" runat="server" />
</li>


Kako parsirati ovaj string i setovati ga kao ItemTemplate, a da pri tome sve kontrole budu dodate, i da Eval odradi svoj posao ?

Edit:

String je proizvoljan. Znam da postoji resenje Page.LoadTemplate("control.ascx") ali u ovom slucaju nije primenljivo.
 
Odgovor na temu

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 715
*.dynamic.isp.telekom.rs.

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon Re: ListView dinamicki templejt08.07.2011. u 20:29 - pre 155 meseci
Hmmm, mislim da ti logika negde skripi jer template podrazumeva da jedan datasource prikazujesh na vise nacina templateima, a ako vise razlicitih datasource-a prikazujesh onda valjda imash vise template-a...

Doduse, po meni IT podrazumeva da sve moze pitanje je kako al nekad prosto nece slonce u lonce (moze al nece)

Ako sam dobro razumeo pitanje...

Daj konkretan primer ...



To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.dynamic.isp.telekom.rs.



+987 Profil

icon Re: ListView dinamicki templejt08.07.2011. u 22:36 - pre 155 meseci
Code (csharp):

namespace WebApplication1
{
    using System;
    using System.Linq;
    using System.Web.UI;

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string template = @"<li>
                                    <%# Container.DataItem %>
                                   <asp:Literal id="
"ltrItem"" runat=""server"" />
                                   <asp:HyperLink ID="
"hlItem"" runat=""server"" NavigateUrl=""http://www.google.com"" Text=""Google"" />
                                </li>"
;

            this.listViewControl.DataSource = Enumerable.Range(0, 10);
            this.listViewControl.DataBind();

            this.listView.ItemTemplate = new ParseTemplate(template);
            this.listView.DataSource = Enumerable.Range(0, 10);
            this.listView.DataBind();
        }
    }

    public class ParseTemplate : ITemplate
    {
        private string _template;

        public ParseTemplate(string template)
        {
            this._template = template;
        }

        public void InstantiateIn(Control container)
        {
            container.Controls.Add(new LiteralControl(this._template));
        }
    }
}
 


Klasa ParseTemplate bi trebala da radi parsiranje stringa koji se prosledjuje i da promenljivu container popuni sa odgovarajucim promenljivim, i da Eval radi.

U sustinu listView i listViewControl bi trebale da imaju identican output.

Dodao sam i projekat koji bi trebalo da pojasni stvari.
Prikačeni fajlovi
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: ListView dinamicki templejt08.07.2011. u 23:47 - pre 155 meseci
Hm, to sto ti hoces je, blago receno, zeznuto da uradis sam jer treba isparsirati taj string koji sadrzi kod. Mogao bi pokusati da iskoristis interne klase (npr TemplateBuilder) ali koliko vidim, sve se svodi na parisranje koda koji je u fajlu a ne u stringu a za tu varijantu vec imas resenje. Mozda je i najbolje da koristis privremene fajlove..
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.dynamic.isp.telekom.rs.



+987 Profil

icon Re: ListView dinamicki templejt09.07.2011. u 00:03 - pre 155 meseci
Nazalost koriscenje temp fajlova nije opcija, a pravljenje custom parsera je suvise zeznuto i trazi daleko vise vremena nego sto imam.
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
82.117.203.*



+987 Profil

icon Re: ListView dinamicki templejt11.07.2011. u 15:34 - pre 155 meseci
Na kraju sam resio preko temp .ascx kontrola i LoadTemplate f-je. Drugacije nije moglo...
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: ListView dinamicki templejt11.07.2011. u 15:43 - pre 155 meseci
Da, bio sam se i ja udubio malo, framework dosta dugo prosledjuje putanju fajla, tek neke privatne funkcije koje ionako ne mozes pozvati obavljaju pravi posao.
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: ListView dinamicki templejt

[ Pregleda: 1678 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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