GridView spécial Update

Signaler
Messages postés
50
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
15 janvier 2007
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour,
dans un gridview j'ai insérer une colonne avec des images et un évènement onclick qui fait changer l'image affichée (ASP 2.0) :

[mailto:mcordeiro@fr.ebsco.com mcordeiro@fr.ebsco.com]

7 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

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 :)


<HR>
Cyril - MVS - MCP
Messages postés
50
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
15 janvier 2007

Logique
Merci Cyril

Alors, je rajoute dans mon gridView un input type text:


[mailto:mcordeiro@fr.ebsco.com mcordeiro@fr.ebsco.com]
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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 !


<HR>
Cyril - MVS - MCP
Messages postés
50
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
15 janvier 2007

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.

Mickey
[mailto:mcordeiro@fr.ebsco.com mcordeiro@fr.ebsco.com]
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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) + ';';

}


<HR>
Cyril - MVS - MCP
Messages postés
50
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
15 janvier 2007

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?

Dsl mais j'ai du mal à comprendre

Mickey
[mailto:mcordeiro@fr.ebsco.com mcordeiro@fr.ebsco.com]
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
si c'est un gridview tu as bien un dataset ou autre ? donc au lieu de ta clé il faudra mettre <%= Container.DataItem("LigneID") %>


<HR>
Cyril - MVS - MCP