2011-03-04 2 views
0

J'ai donc un formulaire complexe pour une déclaration de revenu.aide avec jquery ajax et templates dans asp.net mvc

Il va afficher un résultat brut pour chaque activité que la déclaration de revenu est liée à ... tout cela se fait sur le serveur et fonctionne très bien .... le problème est. L'utilisateur devrait également être capable d'ajouter des activités à la volée .. par javascript ... alors quand l'utilisateur clique sur Ajouter une activité une liste déroulante et un champ de texte doit être ajouté en bas de la liste des activités ... heres ce que j'ai jusqu'ici

<tbody id="activities"> 
      @Html.EditorFor(model => model.income.EconomicActivityIncomeDeclarations) 

      </tbody> 
     </table> 
     <a href="#" id="add_activity">Agregar Otra Actividad</a> 

    </fieldset> 

    <script type="text/javascript"> 
     $("#add_activity").click(function() { 

      $.getJSON('/IncomeDeclarations/GetEconomicActivities', function (data) { 
       var select = new Select(); 
       var data = new Array(); 

       for (var i = 0; i < data.length; i++) { 
        var option = new Option(data[i]["name"], data[i]["i"]) 
        //should do something here 
       } 


       //should call the template and append to #activities 
      }); 
     }); 
</script> 


    <script id="template" type="text/x-jquery-tmpl"> 
    <tr> 
     <td><select name="income.EconomicActivityIncomeDeclarations[${SomeNumber}].EconomicActivityId"> 
     ${MyOptions}   
     </select></td> 
     <td><input type="text" name="income.EconomicActivityIncomeDeclarations[${SomeNumber}].GrossIncome" /></td>> 
    </tr> 
</script> 

} 

l'attribut name tant pour la sélection et la text_field est la clé pour que cela fonctionne ... modelbinding autrement ne fonctionnera pas ... Je pense que si la variable someNumber est réglé sur une nouvelle date.getTime() modèle Liaison devrait fonctionner très bien ...

Je ne vois pas réellement la nécessité d'ajax pour cela, mais c'est un autre sujet .. Je n'ai tout simplement pas compris un moyen de le faire sans ajax ... maintenant je veux obtenir le toupet e pour travailler et ajouter les éléments de formulaire au bas de la liste.

Répondre