J'essaye de peupler GridView, en utilisant EntityDataSource (code derrière), j'ai besoin de pouvoir trier GridView. Mais quand je sorte que je reçois l'erreur: Une propriété avec le nom « aspnet_Users.UserId1 » n'existe pas dans les métadonnées pour le type d'entité Je beleive c'est parce que je produis où le paramètre dans le code derrière:ASP.NET EnqityDataSource WhereParameters, crée une nouvelle propriété
ActiveEnqDataSource.WhereParameters.Add(new SessionParameter("aspnet_Users.UserId", TypeCode.Object, "UserName"));
Le code complet est:
ActiveEnqDataSource.ConnectionString = db.Connection.ConnectionString;
ActiveEnqDataSource.DefaultContainerName = "Entities";
ActiveEnqDataSource.EntitySetName = "Enquiries";
ActiveEnqDataSource.Include = "UserCars.CarModel.CarMake, Category, aspnet_Users";
ActiveEnqDataSource.EnableUpdate = true;
ActiveEnqDataSource.EnableInsert = true;
ActiveEnqDataSource.EnableDelete = true;
ActiveEnqDataSource.AutoGenerateWhereClause = true;
ActiveEnqDataSource.WhereParameters.Add(new SessionParameter("aspnet_Users.UserId", TypeCode.Object, "UserName"));
Des suggestions? Merci beaucoup! La grille elle-même rend parfaitement, seule chose que je ne peux pas trier, tout "whereParameters" j'ajoute, ajouter 1 à la propriété par exemple UserId1, EnquiryStatus1, ProdauctName1. etc ...
WhereParameters sont pour le filtrage, et non pas pour le tri, sont-ils pas? Essayez-vous de trier le GridView avec les LinkButtons dans le GridViewHeader? Si c'est le cas, il serait utile que vous fournissiez une partie de votre balisage GridView. Dans le code que vous avez fourni jusqu'à présent, je ne vois aucun tri. Ou voulez-vous dire que vous obtenez cette erreur dès que vous ajoutez le paramètre WhereParameter? Est-ce que cela fonctionne sans le filtre Where par UserName? – Slauma
Oui, cela fonctionne parfaitement sans clause where qui est pour le filtrage. Le balisage est standard, le tri est activé à l'aide du contrôle "tag". En fait, je l'ai résolu en mettant la clause where dans le balisage, pas de code-behind. Ça marche. Cependant la question est encore, ouverte pourquoi ça ne marche pas du code derrière :) – Alex