Comment définir par programme des parameters pour EntityDataSource et DetailsView?

Je suis perplexe!

Quel est le meilleur moyen de définir par programme un paramètre de sélection pour le contrôle EntityDataSource ?

Plus précisément, je souhaite utiliser le paramètre Page.User.ProviderUserKey pour obtenir un enregistrement dans une table Détails utilisateur personnalisée que j’ai, pour un DétailsView.

J’ai vu du code utiliser asp:ControlParameter pour extraire une valeur d’un contrôle, mais cela semble presque être un hack pour ma situation. Je ne veux pas d’un contrôle supplémentaire juste pour définir la valeur du paramètre.

Des idées? Merci d’avance!

Si la création d’un type de paramètre personnalisé vous semble trop fastidieuse, vous pouvez append par programmation un paramètre de base comme suit:

 Parameter parameter = new Parameter("MyParam", TypeCode.Ssortingng, Page.User.ProviderUserKey); MyDataSource.SelectParameters.Add(parameter); 

Quelque chose comme ça devrait vous donner ce dont vous avez besoin.

Vous pouvez créer votre propre paramètre personnalisé:

  

Les détails de la mise en œuvre d’un paramètre personnalisé sont disponibles sur le blog de Fredrik Normén . L’utilisation d’un paramètre personnalisé est aussi simple que d’utiliser l’un des types de parameters intégrés, mais vous trouverez un exemple rapide sur le blog de ScottGu .

La mise en oeuvre la plus simple ressemblerait à ceci:

 public class CustomParameter : Parameter { protected override object Evaluate(HttpContext context, Control control) { // This is where you would grab and return // the Page.User.ProviderUserKey value return ssortingng.Empty; } }