2011-01-27 11 views
0

私はWebアプリケーションを作成しています!プロパティが変更されたときに見る

私はそれのプロパティを持つクラスを持っている:

public class DependencyHelper: INotifyPropertyChanged 
{ 

    private string _myString; 
    public virtual string MyString 
    { 
     get { return _myString; } 
     set 
     { 
      _myString = value; 
      OnPropertyChanged("MyString"); 
     } 
    } 

は、私はクラスのプロパティは、いったん何かをするだろう、私のホームページのhomepage.aspx.csのイベントのようなものを持ちたいですかわった。 MyStringの値を取得してアラートに表示します。

誰かがこれをどうすればいいか分からないので、助けてもらえますか?

は、それがWebページなので、あなたがメッセージボックスを表示するには、クライアントにJSを放出する必要があなたに

+0

また、http://stackoverflow.com/questions/2246777/raise-an-event-whenever-a-propertysvalue-changedを参照してください。 – nawfal

答えて

0

question 5216766に似ています。 ObservableCollectionまたはAsyncBindingListを使用することをおすすめします。

0

ありがとうございます。スクリプト名が一意になるように

private void OnPropertyChanged(string propertyName) 
{ 
    ScriptManager.RegisterClientScript(typeof(Page), "AlertScript" + System.Guid.NewGuid().ToString(), string.Format("alert('Property {0} has changed');")); 
} 

全体NewGuidの混乱は、それを行い、あなたが複数のプロパティを変更する場合は、複数のボックスを取得します:私はこのような何かをするだろう。

+0

私は助けが必要なプロパティが変更されたことを知っています。私は助けが必要なリスナーイベント(観察可能なパターン)のようなものを考えてください。 – Bruie

+0

ああ...この非常によく似た質問への答えをチェックしてください:http://stackoverflow.com/questions/4738533/dirty-checking-for-an-object/4738604#4738604 –

0

Webソリューションで双方向バインディングを使用するかどうかはわかりませんが、これは絶対不可能です。または、彗星アプローチ(http://en.wikipedia.org/wiki/Comet_(programming))を使用して可能です。

ポストバックやコールバックの後にこのようなことをしている可能性があります。これは、コントロールまたはページからPropertyChangedイベントにイベントハンターを追加し、アラートを表示するためのスクリプトブロックまたは参照を追加することで可能です変更された値で

チェックのScriptControl http://byatool.com/ui/creating-script-controls-and-love/

そしてASP.NETコールバックAPIを作成する方法:http://msdn.microsoft.com/en-us/library/ms178208.aspx

あなたが近づいてか、単に一方通行が第二の場合には、その結合彗星を行うことができます(1が提案推奨されています)、ユーザーとのやりとり後、サーバーへのコールバックを使用して何かが変更されているかどうかを確認し、クライアントに戻ってこの変更を通知します。

+0

これは私が欲しいものかどうかわかりません。私は聞いてくれるリスナーヘルパーのようなものが欲しいです。私はこれが可能であることを知っているだけで十分理解できない! – Bruie

+0

しかし、何をするつもりですか?イベントを処理した後、ポストバックなしでページ内の何かを変更したいのですか、それとも何ですか? –

+0

私の問題は、質問と可能な回答(ドロップダウンの回答)でテーブルを動的に作成していることです。私はテーブルのプロパティにポストバックを動的に追加しました。これは現時点では質問の結果を得て、それをクラス(myResultsClass)内のプロパティに入れます。私がしたいのは、プロパティがMyResultsClassで変更され、homePage.aspx上のメソッドが呼び出されるときです。これにより、与えられた答えに応じて残りのテーブルが再構築されるためです。 - これが意味をなさないことを望む – Bruie

関連する問題