现在要用asp.net ajax实现一个这样的效果:
要求是用asp.net ajax来实现,因为是asp.net 用的当然都是服务器控件。大家准定都知道网站的后台吧。如果不清楚就拿CSDN的论坛说吧~~~
CSDN论坛用的是FRAME,如果现在要改成AJAX的,就是把FRAME改成AJAX
左边导航不动,右边的整个FRAME里变换内容。不管是发贴,还是贴子列表,还是管理。只要点击了,只在这个容器内变换。我问了很多人了,现在是用在右边加一个updatepanel然后把所有的东西全做成用户控件,ascx文件,在里面切换加载。但是这会出现很多问题,用户控件要动态加载,这样在动态加载时就会出很多问题,请问还有其它解决方法吗??

解决方案 »

  1.   

    正在研究Atlax 踩一下 后头再看看 
    你可以参考一下http://www.zj-blog.com  http://www.zj-blog.com/testblog/
    联系到那个作者 可以给你一点提示
      

  2.   

    我就感觉这样的效果很酷,
    二是不要用IFRAME或FRAME。 我觉着这样可以省掉所有的页面。只有一个INDEX.aspx。
    下面是我在应用中遇到的问题,大家也可以参考一下。1。我把所有的内容全做成用户控件,这就需要动态加载,动态加载用户控件有很多麻烦的地方。比如在用户控件里点添加文章的按钮,他要做的是添加文章,添加完成后并通知包含他的窗体加载文章列表的用户控件,
         我去问了一下这个问题,如果用户控件要访问包含他的窗体,这伪反了设计的科学性。控件就是控件,他不需要去关心自身以外发生了什么,
     2。于是我想到为它自定义一个新的事件来通知包含他的窗体,但是我发现用户控件如果是动态加载的话,他的属性和方法都不会暴露出来。
    比如 a.ascx里有一个B属性,如果用LoadControl来加载用户控件,这样不能访问这个B属性,更别说事件了,即始是采用注册的方法加载用户控件,用户控件里的自定义事件也不能绑定到包含它的窗体的方法上。
     
    请问一下如果实现这样的效果还有没有其它方法,
      

  3.   

    Iceguy(Snow)
    谢谢,确实是我要的效果,但不知道作者是始用的asp.net ajax还是使用的手写js代码,然后生成html代码加载。如果是asp.net ajax ,那就正是我想要的结果了,如果是只是生成html代码去加载。这样就不一定要用asp.net 了,asp.net必竟用的是服务端控件,事件驱动的。谢谢,我马上联系他。
      

  4.   

    在asp.net1.1没有问题,在asp.net2.0稍微不同,因为asp.net2.0使用了特殊的方法隐藏了命名空间,使得你可能一时不知道如何访问空间下的类型。至少有两种方法你可以选择:例如为页面增加多个“<%@ Reference Control="MyUserControl.ascx" %>”,这样你才能使用类似“myUserControl uc=(myUserControl)this.Page.LoadControl("myUserControl.ascx");”的语法使用强类型变量来引用用户控件。你还可以在App_Code中增加一个.cs定义一个从UserControl子类(例如 public abstract Class myUserControl:UserControl{}),之后在用户控件的codeBehind的partial类上声明继承自这个类,或者直接修改用户控件ascx文件开头“<%@ Control”中的“Inherits”属性设置此父类。由于App_Code中的代码与页面在同一命名空间,所有这些类型都能在页面上无需声明直接引用。显然,你想暴露什么属性、方法、事件,在这个类中定义,在用户控件的代码类中由于是从这个继承,自然可以实现。
      

  5.   

    研究了很长时间都没解决,用写新事件的方法在用户控件太多的时候也不是很好,而且传参相当麻烦.可能是我技术还不到家!! 我会在以后继续研究.前天夜里突然在MSN见到老赵在线,我只是看到他的MSN号就加了他,也是加了他没几天,也从没有说过话,最后问了他这个问题,想不到他这么热情,马上想到一个全局控制控件的方法,而且还给我写成了一个框架, 用这种模式很轻易解决了这个问题!! 看了他的代码我佩服的五体投地.
    他的代码相当工整,即使是只给我写了一个例子,也是很细至认真,没有因为是一个临时的例子,给变量随手命名,而且他的英文也相当好,所有的注释,和界面显示都全用英文.就连字母大小写都分的清晰,必竟人家翻译了aps.net ajax的文档,不能不佩服~~~~~~
    现在终于按我的想法实现了Asp.net 的完全Ajax ,并且不打乱asp.net的事件驱动.可以用服务器控件.老赵真是一个人品极好,技术好英文好的大大大大好人~~~~~
      

  6.   

    UserControl uc=this.LoadControl(controlSrc) as UserControl;
    pnl.Controls.Add(uc);"比如 a.ascx里有一个B属性"
    uc.B怎么不可以访问呢?!
      

  7.   

    还要加上WebUserControl1 w = uc as WebUserControl1;
    并且在page load以后,是可以访问的
      

  8.   

    我正想问这个问题呢,
    如果建的是WEBSITE就不能访问,如果建的是WEB程序就能访问.不知道为什么.
      

  9.   

    UserControl uc=this.LoadControl(controlSrc) as UserControl;
    pnl.Controls.Add(uc);"比如 a.ascx里有一个B属性"
    uc.B怎么不可以访问呢?!
    ——————————————————————————————————————————
    Q:你声明的uc是UserControl,编译器根本不知道怎么找B属性接口。在早期的vb等所谓的动态语言里是可以访问的,所谓的后期绑定、运行时绑定。.Net是强类型的,它默认地认为程序员有责任在编译时将类型搞清楚,不要拖到运行时系统崩溃了才说这个 BUG 不归程序员,而是归设计人员处理。
      

  10.   

    超级麻烦问题而不是超级难问题;
    动态加载控件问题而不是AJAX问题扣楼主题目10分~~~~有个简单的,假的方法,可以实现这样的效果而减少很多代码,并且不需要AJAX技术~~~甚至还有Loading~~~~~~动画用IFRAME ~~~~  猜到怎么弄么?
      

  11.   

    在ASCS 中是不能使用AJAX 的,血的教训