Novo

Forum kao aplikacija na telefonu

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

  • 6 odgovora
  • 2.374 pregleda

Najnovija ↓

ListView dinamicki templejt 08.07.2011. u 16:11 · pre 186 meseci #1
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.
Re: ListView dinamicki templejt 08.07.2011. u 21:29 · pre 186 meseci #2
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 ...

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

https://youtu.be/DLe358DPGXU
Re: ListView dinamicki templejt 08.07.2011. u 23:36 · pre 186 meseci #3
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.
Re: ListView dinamicki templejt 09.07.2011. u 00:47 · pre 186 meseci #4
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..
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: ListView dinamicki templejt 09.07.2011. u 01:03 · pre 186 meseci #5
Nazalost koriscenje temp fajlova nije opcija, a pravljenje custom parsera je suvise zeznuto i trazi daleko vise vremena nego sto imam. :(
Re: ListView dinamicki templejt 11.07.2011. u 16:34 · pre 186 meseci #6
Na kraju sam resio preko temp .ascx kontrola i LoadTemplate f-je. Drugacije nije moglo...
Re: ListView dinamicki templejt 11.07.2011. u 16:43 · pre 186 meseci #7
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.
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