2009-06-28 9 views
3

Ich bin ratlos!Wie programmgesteuert Parameter für EntityDataSource und DetailsView festlegen?

Was ist der beste Weg, einen Auswahlparameter für das Steuerelement EntityDataSource programmgesteuert festzulegen?

Insbesondere möchte ich den Page.User.ProviderUserKey verwenden, um einen Datensatz in einer benutzerdefinierten Tabelle mit Benutzerdetails zu erhalten, die ich für eine DetailsView habe.

Ich habe Code mit der asp:ControlParameter gesehen, um einen Wert von einem Steuerelement zu ziehen, aber das scheint fast wie ein Hack für meine Situation. Ich möchte keine zusätzliche Kontrolle, nur um den Parameterwert einzustellen.

Irgendwelche Ideen? Danke im Voraus!

Antwort

1

Wenn Typ einen benutzerdefinierten Parameter zu schaffen zu viel Arbeit anfühlt, können Sie programmatisch einen Eckwert hinzufügen wie folgt:

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

Etwas So sollte dir geben, was du brauchst.

+0

Dies gibt dem Parameter-Objekt nur einen Standardwert von ProviderUserKey – Aperture

1

Sie können Ihre eigenen benutzerdefinierten Parameter erstellen:

<my:CustomParameter Name="MyParam" /> 

Die Details, wie ein benutzerdefinierten Parameter implementieren kann auf Fredrik Normén's Blog finden. Die Verwendung eines benutzerdefinierten Parameters ist so einfach wie die Verwendung eines der integrierten Parametertypen. Ein schnelles Beispiel finden Sie unter ScottGu's Blog.

Die einfachste Implementierung würde wie folgt aussehen:

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; 
    } 
} 
Verwandte Themen