解决用户控件循环引用的笨办法

    在上一篇中提到使用MagicAjax开发了一个项目,因为做这个项目之前对MagicAjax不是很了解,在里面使用了用户控件,我发现这是一个很致命的错误,用户控件在MagicAjax中用起来很痛苦.
    因我们的项目不是简单的只要求"看起来像"没有刷新页面,其中一个主要的页面有那么一点点复杂,因页面中数据可以分成多块,有时只要更新某一块中的数据,有时候可能要更新好几块的数据.于是我用分块的思想来使用MagicAjax(AjaxZone),所以用起来有点变态 .因为程序偶尔会把IE弄死,又找不到原因,只是猜想可能因为事件太多IE处理不了卡死.于是我就更改以前的程序响应方式.
    以前程序是一块一块去取数据的,如果有多块数据要取,有时候要来回好几次,想想MagicAjax中的ViewState,我的页面中还有四个Gridview,你应该知道有多耗性能...我想把程序改成要多块数据时,不用来回多次,一次搞定--只有一个ViewState,于是把MagicAjax的源码改了一通.终于改得勉强可以满足需求了,却发现我的用户控件中有循环引用的问题.
    大概就是一种情况下,在用户控件A中发送请求,要求同时更新用户控件B中的数据,因此A要引用B,另一种情况下,在用户控件B中发送请求,同时要更新用户控件A中的数据,B又要引用A,于是恶梦就开始了.在MSDN中看了半天,网上搜了好久也没有找到好的办法,据我了解,循环引用是因为用Reference或Regist指令时在编译的时候会把控件引用进来,网上也有说可以用动态编译的方法避免,不过我们的项目最后是要发布的,不能用那个.
    最后笨筋一动,找到一个笨方法,在APP_CODE中创建了一个接口,用B继承接口,接口中提供A中要使用到的属性和方法.B还引用A,当A要使用的B的时候就把FindControl方法中找的控件转成接口来调用 .不知道有没有好点的办法,还望路过的达人不吝赐教.

转载于:https://www.cnblogs.com/shendsun/archive/2008/12/16/1355663.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值