je ne vois pas de problème ! tu changes tes images via javascript, comment voudrais tu que le serveur sache que tu as modifié tes images ? il faudrais stocker les images modifié dans un input hidden (via js), et ainsi coté serveur tu pourras recuperer le input hidden et voir ce qui a été fait coté client :)
Qu'est-ce qu'il a de derangeant de le mettre à l'exterieur du gridview ? au contraire ce sera beaucoup plus performant car tu écriras moins de choses dans la page (donc plus legere) aprés il faudra faire une fonction js qui serialise ses informations dans un seul champs (rien de trés compliqué) et pareil coté serveur :)
et au lieu d'ecrire à chaque image onclick="JavaScript:if (this.src==tab_image[1].src) {this.src=tab_image[0].src;} else {this.src=tab_image[1].src;}" écrit plutot onclick="unefonction" et rajoute avec page.clientScript.registerStartupScript une fonction js a ta page !
Je vois ce que tu veux dire.
Bon alors j'ai une question idiote:
Comment je mentionne dans ma fonction qu'elle image a été modifiée.
Car si j'ai 50 lignes dans mon datagrid, je dois repérér dans la valeur de mon input quelle ligne j'ai modifié.
J'ai l'impression de tourner en rond avec ce pb.
var unefonction = function()
{
// this correspond à l'image sur laquelle t'as cliqué
alert(this.id); // te retournera le ClientID de l'image
}
sinon
)"
runat="server"
/>
var unefonction = function(elmt, pk)
{
//elmlt correspond à l'image que t'as clické
//pk a la clé primaire de la ligne
elmt.src (elmt.src tab_image[1].src) ? tab_image[0].src : tab_image[1].src;
// je gere pas si le gars click plusieurs fois dessus, faudrais d'abord deserialiser avec un split(';') etc...
document.getElementById('inputhidden').value += pk + '=' + ((elmt.src == tab_image[1].src) ? 0 : 1) + ';';
Alors je suis ton raisonnement, sauf pour <% ta clé %>
Je la sors d'ou?
C'et un gridview donc qu'une ligne pour l' img.
don comment je peux récupérer le numéro de la ligne?