2011-02-03 18 views
5

więc używam szablonów jQuery i mieć następujący kod pracy w mojej aplikacji:jQuery Templates - wymienić zawartość DIV

@using (Html.BeginForm()) 
    { 
     @Html.DropDownList("StateList", 
          Model.States, 
          "<Select>" 
          ) 

     <div id="designCenters"></div> 

     <script id="designCenterTemplate" type="text/html"> 
      <p><li>${Name}</li></p> 
     </script>   
    } 

    <script language="javascript" type="text/javascript"> 
     $("#StateList").change(function() { 
      $.getJSON("/api/designcentersbystate/" + $(this).val(), 
       function (data) { 
        $("#designCenterTemplate").tmpl(data).appendTo("#designCenters") 
       }); 
     }); 
    </script> 

Od Dzwonię .appendTo w parametrze funkcja zwrotna funkcji szablonu oczywiście lista centrów projektowych jest dodawana do listy. Moim celem jest WYMIENIĆ treść z zakresu <div id="designCenters"> za pomocą szablonów.

Szukasz najbardziej wydajnego sposobu na zrobienie tego.

Dzięki.

Odpowiedz

9

zmienić funkcję sukces tak:

function (data) { 
    $("#designCenters").html($("#designCenterTemplate").tmpl(data)) 
} 

Albo można opróżnić pojemnik za każdym razem.

$("#designCenters").empty(); 
$("#designCenterTemplate").tmpl(data).appendTo("#designCenters"); 
+0

Bingo. Przyjmuję to jako odpowiedź w 10 minut. – Scott

1

Można wymienić w elemencie html jak poniżej:

$("#designCenters").html(YOUR HTML HERE); 
+0

Próbowałem zmienić kod szablonu do:. $ ("# DesignCenterTemplate") tmpl (dane) .html ("# designCenters"), ale to nie ma wpływu na inne niż spowodować, że całkowicie przestaną być wyświetlane na matrycy dane (bez błędów JS). Kinda new to jQuery, więc jest to prawdopodobnie podstawowy problem związany z tym, jak go nazywam. – Scott

+0

właśnie używasz metody html niepoprawnie. Moja wersja jest poprawna. Odpowiedź Josiash jest podobna do mojej, ale bardziej kompletna w twoim scenariuszu – stephen776