我知道在服务器端,获得当前显示状态的的TabPanel索引号的代码是
TabContainer.ActiveTabIndex
但是,在客户端的脚本里
没有类似这样的ActiveTabIndex属性或者方法,所以不知道在客户端如何才能得到当前显示的是那个Panel的Index.在调试时,我发现:
TabContainer1中的
Expandos
  control
    Methods
     _activeTabIndex 是当前显示TabPanel的索引号。
用什么方法才能获得这个_activeTabIndex值呢?请大侠多指教!
非常感谢!

解决方案 »

  1.   

    改用js脚本制作的tab是一种思路
      

  2.   


    var tabs = new Ext.TabPanel({style:"padding:0 5px 0 5px",region:"center",activeItem:0,enableTabScroll:true,layoutOnTabChange:true,autoScroll:true,items:[{id:'1',title:"测试1",items:panel1,layout:'fit'},{id:'2',title:"测试2",items:panel2,layout:'fit'},{id:'3',title:"测试3",items:panel3,layout:'fit'}]});
    然后用tabs.getActiveTab().getId()可以获取当前panel的id值,从而也就可以得知当前是哪个panel活动
      

  3.   


    我测试了,没有.getActiveTab().getId()这样的方法,不能用啊。
    谢谢!
      

  4.   


    不是的,我用的是ajax toolkit 里的TabContainer控件,现在希望在脚本获得目前显示的是哪个Panel,知道怎么写?谢谢
      

  5.   


    既然你能从服务端获取当前的TabPanel索引号,那么楼主可不可以采用ajax异步返回TabPanel索引号给客户端呢?
      

  6.   

    谢谢,我在页面上加了一个隐藏的字段TabContainerHiddenField
    然后在TabContainer1_ActiveTabChanged()  增加了将显示的TabPanel索引号返回给客户端的代码
    this.TabContainerHiddenField.Value = TabContainer1.ActiveTabIndex.ToString();但是在客户端,怎么才能取出来这个索引号呢?
    我写的客户端代码是
     var TabContainerHiddenField1 = document.getElementById("TabContainerHiddenField");
     var value0=TabContainerHiddenField1.value;
     发现value0里是空的。
    并没有把索引号传过来。
    不知道正确的应该怎么写?
    谢谢!
      

  7.   

    你服务器端断点调试一下this.TabContainerHiddenField.Value = TabContainer1.ActiveTabIndex.ToString();
    看看有没有值?
      

  8.   

    楼主应该是this.TabContainerHiddenField.Value = TabContainer1.ActiveTabIndex.ToString();没有赋值成功
      

  9.   


    谢谢,我在TabContainer1_ActiveTabChanged()设置 了断点当时是赋值成功的。
    但是又切换后,查看,里面是空的,奇怪,为什么赋值成功呢?
    明明已经赋过值了!
    另外,TabContainer是放在UpdatePanel里的。
    是不是这个原因没有赋值成功,那么怎么才能赋值呢?
    请多指教!
    非常感谢!
      

  10.   

    谢谢大侠,我找到解决办法了,将TabContainerHiddenField也放在UpdatePanel里,就可以复制成功。
    非常感谢。