在master page中有A,B,C,三个区域,其中A是不变的,B中有一个树,C是一个SVG显示区域问题:我想在点击了B中树的不同节点后,后台会生成对应的SVG,然后在C中显示出来 ?也就是MasterPage的局部刷新如何实现?

解决方案 »

  1.   

    类似的功能不如用iframe算了
    用master page的话,C处放置asp:ContentPlaceHolder
      

  2.   

    现在用母版页做东西的比较少了。
    推荐用iframe代替吧
      

  3.   

    ????
    不是说iframe逐渐被mp取代了么,怎么会这样呢???
      

  4.   

    你的“svg显示区”如何刷新?不知道这个,怎么办?如果随便做答,那么我建议你去看看你的SVG显示区有什么开放的javascript api方法来调用。
    是FrameSet,不是IFrame。
      

  5.   

    例如假设你知道所谓SVG显示区其实是一个嵌入的silverlight组件(silverlight application),那么你就可以google一下关于“javascript调用silverlight方法”的机制,然后跟厂商要符合这种调用机制的api接口来操作。知道了这个,才知道你的树节点该写什么东西触发它。
      

  6.   

    至于说它是一个完整地新的用户控件,那么你可以使用Page.LoadControl来动态加载它。我在以前在csdn上写过一个demo,只不过它是动态加载任意多个用户控件(确切说应该是用户控件实例),而且可以在页面刷新是保持每一个用户控件实例的状态,例如你在页面上加入一个Button然后时不时地点击它让页面回发,你会看到各个用户控件中的任何状态都不会丢失、也不会混乱。
    http://zhidao.123doing.com/45550.html
      

  7.   


    我显示SVG用的是AdobeSVG,silverlight可以显示SVG???
    如果silverlight可以显示SVG,那就好办多了。还有,我的画面无法用SL来代替SVG,项目不允许。显示载体倒没有什么要求。等高手哈~~~
      

  8.   

    嗯,动态加载用户控件的demo在
    http://topic.csdn.net/u/20100130/23/55016be8-dee9-41c7-81cc-a2928f7b50d6.html
    上面的链接有误。
    SVG只是一种协议。
      

  9.   

    感觉你对MasterPager的实现有点不明白啊,MasterPage只是个壳,你的使用MasterPage的页面会调用这个壳,并在预留的位置补上相关的内容。asp:ContentPlaceHolder 其实就是个 <div></div>。最后生成一个html给你。你要点一个html中的一部分,改另一部分当然只能选用 ajax 或 IFrame了。和MasterPage没有任何关系。
      

  10.   

    不论是silverlight还是什么,如果它是<object />标签嵌入的组件,都可以首先考虑使用javascript来操作它,而这就跟网站本身没有关系。对于IFrame,树控件倒是支持制定链接的目标到IFrame。