2011-10-23 9 views
0

私はC#[ASP.NET 2.0 - VS 2005]を使用していますが、Observer Patternを実装してDropDownインデックスの変更時に(クラスに常駐する)メソッドを起動します。 3つのDropDownとLabel Controlがあり、DropDownインデックスの変更時にリアルタイムで新しく生成されたスキームコードを表示する必要があります。Observerパターンを実装してクラス内のメソッドを実行する

public sealed class GetSchemeCode:INotifyPropertyChanged 
{ 

    private string _distCode; 
    private string _blockCode; 
    private string _schmType; 


    public string DistCode 
    { 
     get { return _distCode; } 
     set { _distCode = value; } 
    } 
    public string BlockCode 
    { 
     get { return _blockCode; } 
     set { _blockCode = value; } 
    } 
    public string SchemeType 
    { 
     get { return _schmType; } 
     set { _schmType = value; } 
    } 


    public GetSchemeCode() 
    { 
     // 
     // TODO: Add constructor logic here 
     // 
    } 


    protected string GetNewSchemeCode() 
    { 
     SqlCommand cmdSchmCode = new SqlCommand("GenerateSchemeCode", dbConnection.cn); 
     try 
     { 
      cmdSchmCode.CommandType = System.Data.CommandType.StoredProcedure; 
      //Add Parameters 
      cmdSchmCode.Parameters.AddWithValue("@districtCode", DistCode.ToString()); 
      cmdSchmCode.Parameters.AddWithValue("@blockCode", BlockCode.ToString()); 
      cmdSchmCode.Parameters.AddWithValue("@schemeType", SchemeType.ToString()); 
      dbConnection.OpenConnection("Scheme"); 
      return cmdSchmCode.ExecuteScalar(); 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
     finally 
     { 
      cmdSchmCode.Dispose(); 
      dbConnection.CloseConnection(); 
     } 
    } 

} 
+0

C#オブザーバパターンの実装があります –

+1

私は世界平和を望んでいますが、それは問題ではありません。あなたの質問は何ですか?何を試しましたか?あなたは何をしていますか? – Enigmativity

+0

私はどこにいらっしゃいましたか?とにかく、プロパティの変更があったときにGetNewSchemeCode()メソッドを呼びたいと思います。 – RKh

答えて

1

ドロップダウンリストの選択されたインデックス変更されたプロパティをフックするには、以下のコードのようにします。それは私が信じる場面の裏側のObserverパターンのAsp.Net実装です。 AutoPostBackプロパティとイベントの接続は、コードまたはhtmlマークアップのいずれかで設定できます。

public GetSchemeCode() 
{ 
     DistCodeDropDownList.AutoPostBack = true; 
     DistCodeDropDownList.SelectedIndexChanged += new EventHandler(DistCodeDropDownList_SelectedIndexChanged); 

     // TODO: Hook up the other DropDownLists here. as well 
} 

    void DistCodeDropDownList_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     CodeOutputLabel.Text = GetNewSchemeCode(); 
    } 
1

C#がObserverパターンに取って代わりました。イベントはObserverパターンの言語レベルの実装です。あなたがしたいことは、あなたのオブジェクトにイベントを作成してオブザーバーにそれを購読させることです。

関連する問題