¿Cómo establecer parámetros mediante progtwigción para EntityDataSource y DetailsView?

¡Estoy perplejo!

¿Cuál es la mejor manera de establecer mediante progtwigción un parámetro de selección para el control EntityDataSource ?

Específicamente, quiero usar el Page.User.ProviderUserKey para obtener un registro en una tabla de Detalles del usuario personalizada que tengo, para un DetailsView.

He visto código usando el asp:ControlParameter para extraer un valor de un control, pero casi parece un truco para mi situación. No quiero un control adicional solo para establecer el valor del parámetro.

¿Algunas ideas? ¡Gracias por adelantado!

Si la creación de un tipo de parámetro personalizado se siente como demasiado trabajo, puede agregar un parámetro básico mediante progtwigción de la siguiente manera:

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

Algo como esto debería darte lo que necesitas.

Puedes crear tu propio parámetro personalizado:

  

Los detalles de cómo implementar un parámetro personalizado se pueden encontrar en el blog de Fredrik Normén . Usar un parámetro personalizado es tan simple como usar cualquiera de los tipos de parámetros integrados, pero se puede encontrar un ejemplo rápido en el Blog de ScottGu .

La implementación más simple se vería así:

 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 string.Empty; } }