我做一个TabControl,用户在切换TabPage时为了避免控件刷新我用的是ICallbackEventHandler去回调,但这样不能调用SaveControlState或是SaveViewState去保存用户选择当前TabPage时的索引值.因为我在TabPage里面加载了ascx文件,所以TabPage里会涉及到提交按钮,一但点出提交按钮的话,我的TabControl就跳到最初项了(因为我不能保存用户选择当前TabPage时的索引值).我想问要怎么保存用户选择当前TabPage时的索引值?

解决方案 »

  1.   


    应该是不可能的。在2005年,我用了将近 1 年的时候想通过客户端回调技术来实现我所希望看到的Ajax,设计了几个框架来解决ViewState问题,ViewState即使费劲地解决了你也无法让控件再正常地触发事件了。随着asp.net项目组正式发布Ajax(把Atlas改为asp.net Ajax并且最终发布),我放弃了那种企图。所以我用我在搞asp.net最漫长的一次研究经历告诉你,我认为客户端回调技术是不完备的,如果你需要像UpdatePanel那样可以完备地处理控件状态和事件,是做不到的。我从那以后从来不用客户端回调。
    客户端回调是asp.net2.0发布时的所带的技术。那个时候asp.net ajax还是叫做atlas项目,而且技术框架很差。后来经过大幅度的调整,终于比较稳定可靠的,但是那个时候asp.net2.0早已发布出来很久了,所以只好放到.net的补丁中发布asp.net ajax。正因为此,有些干部了解那段历史的人,看到很多讲解asp.net2.0的入门书上没有asp.net ajax但是又客户端回调的内容,就以为客户端回调才是“正宗Ajax”。其实,asp.net ajax出来了,客户端回调技术就没有什么新的用处了。
      

  2.   

    to:sp1234
    感谢!!!!!回答得很详细,我还有点疑惑如果是postback回去的话他是要调用saveviewstate,哪么有没有方法能在Callback事件里面去手动调用保存saveviewstate?