2012-09-03 6 views
10

Próbuję dowiedzieć się w szablonie Kendo UI dla widoku listy, w jaki sposób pętli kolekcji w każdym obiekcie, aby wyświetlić informacje na stronie. Oto przykład z json gram z:KEY UI pętli kolekcji w Json w ramach szablonu dla ListView

{"Data":[{"Title":"Malicious Acts","KeyPairs":{"Key1":"12","Key2":"24"}},   {"Title":"Enrollments","KeyPairs":{"Key1":"12","Key2":"24"}},{"Title":"Customer Feedback","KeyPairs":{"Key1":"12","Key2":"24"}},{"Title":"Questionable Accounts","KeyPairs":{"Key1":"12","Key2":"24"}}],"Total":4,"AggregateResults":null,"Errors":null} 

Chcę uczynić elementy KeyPairs w szablonie i tylko pewne kłopoty ze zrozumieniem sposobu.

Oto źródło:

<div id="subscriberFunctions"> 

    <script type="text/x-kendo-tmpl" id="template"> 
     <div class="subscriberFunction"> 
      <h3>${Title}</h3> 
      <!-- Display KeyPairs --> 
     </div> 
    </script> 

    @(Html.Kendo().ListView<SubscriberMenuFunction>() 
     .Name("listView") 
     .TagName("div") 
     .ClientTemplateId("template") 
     .DataSource(dataSource => 
     { 
      dataSource.Read(read => read.Action("SubscriberMenu", "ListView")); 
     }) 
     .Selectable(selectable => selectable.Mode(ListViewSelectionMode.Single)) 

    ) 
</div> 

Jestem pewien, że jestem po prostu overthinking to, i to jest coś proste, ale nie wiem, jak wdrożyć pętlę foreach w szablonie dla Kendo UI rozpoznać to.

Z góry dziękuję!

Odpowiedz

23

Można to zrobić za pomocą licznika w pętli for. To powinno rozwiązać problem:

<script type="text/x-kendo-tmpl" id="template"> 
<div class="subscriberFunction"> 
    <h3>${Title}</h3> 
    <!-- Display KeyPairs --> 
    <ul> 
     #for (var i=0,len=KeyPairs.length; i<len; i++){# 
      <li>${ KeyPairs[i] }</li> 
     # } # 
    </ul> 
</div> 

+0

To jest lepsze podejście, działa wspaniale i nie przynosi dodatkowego kodu w wynikach. – mservais

+0

Myślę, że masz literówkę po "var i = 0", przecinek powinien być półkolistym prawda? –

+0

^Myślę, że masz literówkę po "powinno być", "średnik" powinien być "średnik", prawda? : P – PAULDAWG

8

Można mieć dowolny kod JavaScript wewnątrz szablonu:

<script type="text/x-kendo-tmpl" id="template"> 
    <div class="subscriberFunction"> 
     <h3>${Title}</h3> 
     <!-- Display KeyPairs --> 
     <ul> 
     # for (var key in KeyPairs) { # 
       <li>${ KeyPairs[key] }</li> 
     # } # 
     </ul> 
    </div> 
</script> 
+2

Że dostał moje wartości, ale przyniósł ze sobą coś, co wygląda kodu javascript: • \t 52b1e4cc-5fef-4f5c-a0b5-f054b2cf6655 • \t function() {return b} • \t funkcja (a) {var b = to, c, d, e = funkcja() {return b}, f; o.fn.init.call (this); for (d in a) c = a [ d], d.charAt (0)! = "_" && (f = M.call (c), c = b.wrap (c, d, e)), b [d] = c; b.uid = n.guid()} • funkcja (a) {return this.hasOwnProperty (a) && a! == "_ events" && typeof to [a]! == r && a! == "uid"} • \t function() {var a = {}, b, c; dla (c w tym), jeśli (to powinno rozgrupować (c)) {b = to [c]; jeśli (b wystąpienie R || b wystąpienie Q) b = b.toJSON(); a [c] = b} return a} ... – mservais

+0

Czy KeyPairs to zła nazwa dla tego przykładu? – mservais

+0

@mservais udało Ci się dowiedzieć, jak pozbyć się javascript? Stoję w obliczu tego samego dylematu. –

Powiązane problemy