2009-06-28 10 views
3

イム困惑!EntityDataSourceとDetailsViewのパラメータをプログラムで設定する方法は?

プログラムでEntityDataSource制御するための選択パラメータを設定するための最良の方法は何ですか?

は具体的に、私はたDetailsViewのために、私が持っているカスタムユーザーの詳細テーブル内のレコードを取得するためにPage.User.ProviderUserKeyを使用したいです。

私がコントロールから値を引っ張ってasp:ControlParameterを使用してコードを見てきましたが、それはほとんど私の状況のた​​めのハックのように思えます。私はパラメータ値を設定するだけの特別なコントロールは必要ありません。

アイデア?前もって感謝します!

答えて

1

を次のように、あなたはプログラム的に基本的なパラメータを追加することができます

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

何かこのように、必要なものをあなたに与えるはずです。

+0

これは、ParameterオブジェクトにProviderUserKeyのデフォルト値を与えています – Aperture

1

独自のカスタムパラメータを作成することができます

<my:CustomParameter Name="MyParam" /> 

カスタムパラメータを実装する方法の詳細はFredrik Normén's Blogで見つけることができます。カスタムパラメータを使用すると、内蔵のパラメータ型のいずれかを使用するのと同じくらい簡単ですが、簡単な例ではScottGu's Blogで見つけることができます。

最も単純な実装では、このようなものになります。カスタムパラメータの種類があまりにも多くの仕事のように感じて作成する場合

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; 
    } 
} 
関連する問題