2011-01-27 101 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的值并将其显示在警报中。

有人可以请帮忙,因为我想不出如何去做。

谢谢

+0

另请参阅http://stackoverflow.com/questions/2246777/raise-an-event-whenever-a-propertys-value-changed – nawfal 2013-05-05 18:18:28

回答

0

因为它是一个网页,你必须发出JS出到客户端显示的消息框。我会做这样的事情:

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

整个NewGuid混乱使得它使得脚本名称是独一无二的,如果你改变一个以上的财产,你会得到一个以上的方框。

+0

它是知道何时需要帮助的属性发生变化。认为它像一个我需要帮助的倾听者事件(可观察模式)。 – Bruie 2011-01-27 16:37:53

+0

啊...检查出这个非常类似的问题的答案:http://stackoverflow.com/questions/4738533/dirty-checking-for-an-object/4738604#4738604 – 2011-01-27 16:41:30

0

我不知道你是否想在Web解决方案中使用双向绑定,这是绝对不可能的,或者可能使用彗星方法(http://en.wikipedia.org/wiki/Comet_(programming))。

也许你希望在回发或回调之后做这样的事情,这可能只是从控件或页面向PropertyChanged事件添加事件hanlder,并添加一些脚本块或引用一个来显示警报与改变的价值。

检查如何创建一个ScriptControl的http://byatool.com/ui/creating-script-controls-and-love/

和ASP.NET回调API:http://msdn.microsoft.com/en-us/library/ms178208.aspx

你可以做一个彗星接近或只是一个单向绑定,所以,在第二种情况下(在一个建议并建议),在用户交互后,使用回调服务器,检查是否有更改,然后回到客户端,提醒此更改。