TabContainer要实现服务器端回传

本文详细介绍了如何在AJAXControlToolkit的Tab控件中实现TabPanel切换时的动态加载功能,通过使用UpdatePanel、客户端脚本和自定义事件处理,使得TabPanel切换时能够触发动态加载操作,从而实现实时更新内容的效果。

 

   搞不懂为什么AJAX Control Toolkit Tab控件为什么不提供TabPanel切换时可设置回传或回调。我就要需要这个功能:当在TabPanel切换时,实现动态加载TabPanel里的内容。    

      Google了不少网页,看了不少的文章,好几次冲动地想自己把功能做出来,可抱着别人也应该会遇到这个问题的幻想,终于老天不负有心人,给我打到了答案。似乎找不到中文版的解决方案,可英文版竟然找到了。    

答案在这个网址里:http://www.codeplex.com/AtlasControlToolkit/WorkItem/View.aspx?WorkItemId=7739    

不想看E文的话,我这里说下:    

    1。在UpdatePanel里加上这个:

<triggers>

       <asp:AsyncPostBackTrigger ControlID="tabContainer" EventName="ActiveTabChanged" /> </triggers>    

 

    2。在aspx网页上加上这个客户端脚本:

    function ActiveTabChanged(sender, e)

    {

         <%= Page.ClientScript.GetPostBackEventReference(TabContainer, String.Empty) %>

    }

    function ActiveTabChanged(sender, e)

   {

      __doPostBack('<%= TabContainer.ClientID %>', sender.get_activeTab().get_headerText());

   }   

   

    3。在Tab控件加上这个属性: OnClientActiveTabChanged="ActiveTabChanged"    

   

    4。在Page_Load事件里加: ScriptManager1.RegisterAsyncPostBackControl(TabContainer); 注意:将以上的“TabContainer”替换为你自定的tab控件ID

TabContainer要实现服务器端回传,出来在后台实现 OnActiveTabChanged 事件外, 还需要在前台实现 OnClientActiveTabChanged 事件,这是关键。

 

 

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true">     

  <contenttemplate>  

            <ajaxToolkit:TabContainer runat="server" ID="Tabs" Height="480px" Width="100%"             

            OnClientActiveTabChanged="activeTabChanged"            

            OnActiveTabChanged="Tabs_ActiveTabChanged"> 

 

            <ajaxToolkit:TabPanel runat="Server" ID="Panel1" HeaderText="我的消息">                 <ContentTemplate>                

                 ***                 

               </ContentTemplate>             

            </ajaxToolkit:TabPanel>           

      

           <ajaxToolkit:TabPanel runat="Server" ID="Panel2" HeaderText="已发消息"> 

                <ContentTemplate>                 

                ***                

              </ContentTemplate>             

        </ajaxToolkit:TabPanel>         

    </ajaxToolkit:TabContainer>     

</contenttemplate>     

  <triggers>         

<asp:AsyncPostBackTrigger ControlID="Tabs" EventName="ActiveTabChanged" />     

 </triggers>

</asp:UpdatePanel>

<script language="javascript" type="text/jscript">

function activeTabChanged(sender, e) 

 {     

      __doPostBack('<%= Tabs.ClientID %>', sender.get_activeTabIndex()); 

  }  

</script>

 

 

后台.cs代码:

protected void Tabs_ActiveTabChanged(object sender, EventArgs e) {    

switch (Tabs.ActiveTabIndex)   

  {       

 case 0: BindGrid();            

break;        

case 1: BindGrid2();            

break;        

case 2:  Message.Text = "";           

 break;       

default:  break;    

} }

 

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值