用了asp.net ajax,为了转换页面,都使用了ascx动态载来载去,问题来了:感觉有点不对劲,PlaceHolder里面的ascx要通过this.Parent控制PlaceHolder载入另一个,还要从一个动态载入的ascx传值到另一个动态载入的ascx等等
还有,到了有数据提交时就麻烦了,老是会跳到上一个ascx动态载入的ascx,因为当前ascx是上一个ascx(也是动态载入的)动态载来的(通过this.Parent),转晕了,有时还会出现什么什么数据集什么的不对了,汗...是不是方法搞错了?这样做是不是不明智,要不然偶换用框架页面了...

解决方案 »

  1.   

    “PlaceHolder里面的ascx要通过this.Parent控制PlaceHolder载入另一个”这就是根源。ascx凭什么要替自己的父控件做主?这在设计上是很糊涂的。对于初学者说这些往往不容易理解。其实大乱都是一些非常不起眼的概念被滥用造成的,有经验者总是严守设计尺度。子控件不要为父控件做主,应该使用事件通知。父控件有了该有的职责,就知道该在什么地方保存状态了。
      

  2.   

    我不知道asp.net ajax在哪里保存状态,在我的ajax框架中提交仅仅刷新一行数据而不是一个更大的区域。“当前ascx是上一个ascx(也是动态载入的)动态载来的(通过this.Parent)”这个我也觉得很奇怪,如果你的asp.net不支持ViewState了(大多数都Ajax都不支持),那么你的页面完全可以把状态写在hidden field中。保存状态并且根据状态装入用户控件,这是页面的职责,不是交给用户控件去做的。
      

  3.   

    更详细问题内容请看帖:
    http://community.csdn.net/Expert/TopicView3.asp?id=5218843