Je récupère les informations sous le format XML d'un service Web...
Je mets les informations dans un " Generic List<type>" et les affiche par la "classe PlaceHolder".
Affichage c'est en ordre de l'information venue par le service WEB donc par "Id".
Comment peux-je changer l'affichage de cet ordre : par exemple selon "BwEtatId"
---Pour clarifier la situation : -----
Voici mon code :
Je ne comprends pas très bien...
ConstructIdent, c'est dans webService en format xml donc je ne peux pas changer le web service...
je demande, par mon fichier c#, ainsi les informations :
//demande info par nameId sur les inscriptions
ConstructIdent[] myInscriptions = InscriptionsWP.GetInscriptions(nameId);
// declaration Generic List<type>
List<ConstructIdent> monListSansAnnulation = new List<ConstructIdent>();
ce que j'ai fait...
j'ai ajouté les lignes suivantes après le "using System.Collections.Generic;" :
using System.Linq;
using System.Text;
ensuite après la déclaration Generic List, j'ai ajouté ton code :
//demande info par nameId sur les inscriptions
ConstructIdent[] myInscriptions = InscriptionsWP.GetInscriptions(nameId);
//demande info par nameId sur les inscriptions
ConstructIdent[] myInscriptions = InscriptionsWP.GetInscriptions(nameId);
// declaration Generic List<type>
List<ConstructIdent> monListSansAnnulation = new List<ConstructIdent>();
//ton code Linq : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
monListSansAnnulation monListSansAnnulation.OrderBy(element> element.BwEtatId).ToList();
//ensuite la reste :
Mais j'ai eu le message d'erreur :
[list]
Compiler Error Message: CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)
Line: 10
Line 10: using System.Linq;
/list Alors où je fais la bêtise ?
1) Tu n'es pas en Framework 3.5 ou supérieur
(Il faut que tu aies minimum Visual Studio 2008, et que quand tu fasse Clic-droit -> propriétés sur ton projet, tu aies bien "Framework Cible" 3.5 ou supérieur)
2) Tu n'as pas la référence vers System.Core
Vérifie si elle y est dans le dossier References de ton projet. Si elle n'y est pas, il faut que tu fasses Clic-droit sur ton projet -> Ajouter une référence -> Onglet ".NET" -> System.Core
Krimog : while (!(succeed = try())) ; - Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
sur mon pc, local, :
[list]
Microsoft Visual Studio 2010
Version 10.0.30319.1 RTMRel
Microsoft .NET Framework
Version 4.0.30319 RTMRel
Version installée : WD Express
Microsoft Visual Web Developer 2010
/list
et j'ai .NET Framework 4
en plus sous WD Express lorsque j'ai voulu ajouté la référence vers System.Core mais j'ai eu le message suivant :
Le site Web fait déjà référence à l'assembly 'System"core'
Et j'affiche la page sans message d'erreur sous Firefox et IE localement sur mon pc...
Sur mon serveur (donc, je n'ai pas installé WD 2010 Express)
il y a MS.Net Fremworrk 3.5 SP1 et j'ai ainsi System.Core.dll dans C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5
mais je n'arrive pas afficher la page : il y a la même erreur....
[list]
Compiler Error Message: CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)
Line: 10
/list
alors comment je peux référencer, sur le serveur, sans WD Express, à l'assembly 'System.core' ?
avec ton code :
monListSansAnnulation <gras>monListSansAnnulation.OrderBy(element> element.BwEtatId).ToList();</gras>
j'arrive afficher ma page, localement, sous Firefox/ IE sans erreur, mais le résultat n'est pas trié selon BwEtatId. c'est comme avant (en ordre de l'information venue par le service WEB donc par "Id")
Dans WD 2010 Express, lorsque mon curseur est sur OrderBy
J'ai le message suivant de MVWD2010Express :
[i]"(variable locale) List<ConstructIdent> monListSansAnnulation
Erreur :
'System.Collections.Generic.List' ne contient pas une définition pour 'OrderBy' et aucune méthode d'extension 'OrderBy' accetant un premier argument de type 'System.Collections.Generic.List' n'a été trouvée (une
directive using ou une référence d'assembly est-elle manquante ?)/i
Pourquoi il y a ce message et pourquoi il n'y a pas l'affichage en ordre de "BwEtatId"??
Bonne journée
p.s : rappel :
//demande info par nameId sur les inscriptions
ConstructIdent[] myInscriptions = InscriptionsWP.GetInscriptions(nameId);
//demande info par nameId sur les inscriptions
ConstructIdent[] myInscriptions = InscriptionsWP.GetInscriptions(nameId);
// declaration Generic List<type>
List<ConstructIdent> monListSansAnnulation = new List<ConstructIdent>();
//ton code Linq : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
monListSansAnnulation monListSansAnnulation.OrderBy(element> element.BwEtatId).ToList();
//ensuite la reste :
Je ne comprends pas pourquoi il ne trouve pas System.Linq (et franchement, je trouve ça étonnant). Mais s'il ne le trouve pas, c'est normal qu'il ne trouve pas la méthode OrderBy() (qui est une méthode d'extension, c'est-à-dire qui ne se trouve pas directement dans la classe).
Quant au fait que tu aies la page sans erreur sous Firefox et IE, je pense que c'est dû au fait que tant qu'il ne peut pas compiler, il ne met pas à jour ton répertoire de sortie. Donc en fait, c'est la dernière version fonctionnelle que tu vois (selon moi).
Krimog : while (!(succeed = try())) ; - Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -