日期:2014-05-18  浏览次数:20552 次

求一个观察者模式的实例aspx--操作B页面的内容怎么实时更新A页面的值
有这么个需求
A页面是主页,上面显示用户名和余额等信息(信息从数据库里取),
用iframe在A页面里套了个B页面,
现在在B页面里操作用户的金额,比如减少金额等,并写入数据库,
如果写入成功,就实时更新A主页面上的余额为最新的

以下是我的方法,
在A页面写委托和事件还有方法
  public delegate void UpUserMoneyEventHanler();
  public event UpUserMoneyEventHanler UpesersEver;
  public void UpUserMoney()
  {
  Users uu = UsersService.GetUsersByLogidAndPwd(Session["users"] as Users);
  if (uu != null)
  {
  lblMoney.Text = uu.balance;
  }
  }
  public void OnEventUpMoney() {
  UpesersEver += UpUserMoney;
  UpesersEver();
  }

在B页面写测试方法
  protected void Button1_Click(object sender, EventArgs e)
  {
  if (UsersService.testUpUsersMoney())
  {
  new _Default().OnEventUpMoney();
  Response.Write("<script>alert('成功了!')</script>");
  }
  }

以上内容没有通过.不知道是哪的原因
lblMoney.Text = uu.balance; 这里提示 未将对象引用设置到对象的实例

------解决方案--------------------
楼主好像还没有搞懂网页运行的基本原理
这个东西要用javascript来实现
如果你要用asp.net来做.按照你的做法,可以用用户控件,然后是事件来通知
在.net中可以不用观察者,委托就可以了