2010-08-05 7 views
1

J'ai une liste que je boucle pour peupler ma table. Je voudrais au mieux transmettre une ligne de données à mon code javascript. Si non, je voudrais passer la liste et le numéro d'identification pour rechercher cette ligne dans la liste. Comment puis-je faire ceci?Comment passer une liste d'aspx à javascript?

<%foreach(var item in Model.NewList) { %> 
<tr> 
    <td><%=item.EntryDate.ToShortDateString() %></td> 
    <td onmouseover="showDetailsHover(<%=item %>,<%=item.idNumber%>);" 
     onmouseout="hideDetailsHover();"><%=Html.ActionLink(item.idNumber,"SummaryRedirect/" + item.idNumber) %></td> 
</tr> 
<% } %> 

Répondre

0

pour les idées THanks. J'ai finalement creusé un peu plus avec vos suggestions et j'utiliser une boucle sur la liste que je puis ajouter mes passée données à la ligne en fonction de la boucle ...

success: function(data) { 
     var loopList = data.message.NewList; 
     for (var i = 0; i < loopList.length; i++) { 
      addRecentData(loopList[i]); 
     } 
    }, 
}); 
function addRecentData(data) { 
    .... 
} 

Merci pour le coup de coude!

1

Vous pouvez utiliser sérialisation JSON pour transmettre ces données http://json.codeplex.com/ - bibliothèque pour la sérialisation

1

Le concept de « passer une liste de ASPX à javascript » est un peu difficile à comprendre depuis votre code ASP.NET fonctionne sur le serveur et le code javascript s'exécute dans le navigateur. Parce qu'ils existent dans différents domaines, vous ne pouvez pas simplement "passer" une liste d'un domaine à l'autre.

Cependant, vous avez plusieurs options:

  • exposons un service Web que vous pouvez accéder à partir javascript. Le service Web peut être responsable de fournir la ligne de données afin que javascript puisse le comprendre.
  • Mettez des données JSON au format statique directement dans votre fonction javascript lorsque votre page est chargée. JSON est un format que javascript peut comprendre. Bien que techniquement, cela ne "passe" pas une variable dans une fonction javascript d'ASP.NET, il est dit "Voici les données que je veux exécuter dans ma fonction javascript quand/si elle fonctionne sur le client."
1

Le moyen le plus rapide que je peux penser est la suivante:

  1. Utilisez Json.Net pour sérialiser votre liste en tant que chaîne JSON sur votre page.
  2. Inclure jQuery et jQuery-json plugin.
  3. Définir une liste javascript dans une fonction javascript.

Quelque chose comme ceci sur votre page ASPX:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://jquery-json.googlecode.com/files/jquery.json-2.2.js"></script> 
<script type="text/javascript"> 
    function foo() { 
     // This is where we use the Json.Net library 
     var rawJsonString = '<%= Newtonsoft.Json.JsonConvert.SerializeObject(Model.NewList) %>'; 

     // This is where we use the jQuery and jQuery-json plugin 
     var list = $.evalJSON(rawJsonString); 

     // Do stuff with your list here 
    } 
</script> 
Questions connexes