Je rends une vue avec une table dedans. Chaque ligne de la table est un objet qui pourrait être édité. Donc, la dernière colonne de cette table a un tas de boutons "EDIT". Lorsque l'un de ces boutons EDIT est cliqué, la fonction JavaScript doit récupérer l'identifiant de l'objet représenté par la ligne en cours. En fin de compte, je voudrais finir avec un HTML propre: pas d'attributs "onclick", "onmouseover" et pas d'attributs personnalisés. Ci-dessous, j'ai 2 exemples dont je ne suis pas ravi. Des bonnes idées?Meilleure façon de passer des paramètres d'objets serveur à JavaScript
Exemple 1:
View.aspx
<td>
<input type="button" value="EDIT" onclick="JSFunction(<%: ObjectId %>)" />
</td>
JavaScript
function JSFunction(id)
{
//some code that does whatever with id
}
Exemple 2:
View.aspx
<td>
<input type="button" value="EDIT" customAttribute="<%: ObjectId %>" />
</td>
JavaScript
$('input[type=button]').click(function() {
var id = this.attr('customAttribute');
//some code that does whatever with id
});
post-scriptum Si vous pouviez trouver un meilleur titre de question, s'il vous plaît partager aussi bien :)
Où voulez-vous que les données customAttribute soient stockées?Une fois que nous savons où il est, nous pouvons comprendre comment y accéder avec jQuery. Ou voulez-vous que les données soient stockées côté serveur et vous l'obtenez avec AJAX? – mrtsherman
Les attributs personnalisés peuvent être considérés comme html propre. Ils sont même dans la spécification HTML5 http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-data-with-the-data-attributes – Vadim
@mrtsherman - Je le veux pour être rendu dans le côté serveur HTML, alors chez le client, JavaScript pourrait saisir cette valeur. – Dimskiy