C# 存储TabContainer';ActiveTabIndex回发

C# 存储TabContainer';ActiveTabIndex回发,c#,asp.net,ajaxcontroltoolkit,C#,Asp.net,Ajaxcontroltoolkit,我在应用程序中经常使用AJAX控件工具包的“TabContainer”控件,应用程序的一个要求是将活动选项卡存储在会话中。当前要做到这一点,我将选项卡放在UpdatePanel中,并在更改选项卡时执行回发以将活动选项卡索引存储在会话中。这是一个缓慢的操作,因为页面相当密集,所以这并不理想。有没有别的办法?也许使用web服务存储会话而无需回发?最简单的方法是使用ScriptManager的PageMethod 1启用分页方法 <asp:ScriptManager runat="server"

我在应用程序中经常使用AJAX控件工具包的“TabContainer”控件,应用程序的一个要求是将活动选项卡存储在会话中。当前要做到这一点,我将选项卡放在UpdatePanel中,并在更改选项卡时执行回发以将活动选项卡索引存储在会话中。这是一个缓慢的操作,因为页面相当密集,所以这并不理想。有没有别的办法?也许使用web服务存储会话而无需回发?

最简单的方法是使用ScriptManager的PageMethod

1启用分页方法

<asp:ScriptManager runat="server" EnablePageMethods="true"></asp:ScriptManager>
3创建用于向服务器发送实际数据的js函数处理程序

<script type="text/javascript">

    function clientActiveTabChanged(sender, args) {

        PageMethods.SaveCurrentTab(sender.get_id(), sender.get_activeTabIndex());
    }

</script>

函数ClientActivateABC已更改(发送方,参数){
PageMethods.SaveCurrentTab(sender.get_id(),sender.get_activeTabIndex());
}
4将js处理程序附加到TabContainer

<ajaxToolkit:TabContainer ID="TabContainer1" runat="server" OnClientActiveTabChanged="clientActiveTabChanged">
    <ajaxToolkit:TabPanel ID="TabPanel1" runat="server" HeaderText="Test1">
        <ContentTemplate>Test1</ContentTemplate>
    </ajaxToolkit:TabPanel>
    <ajaxToolkit:TabPanel ID="TabPanel2" runat="server" HeaderText="Test2">
        <ContentTemplate>Test2</ContentTemplate>
    </ajaxToolkit:TabPanel>
    <ajaxToolkit:TabPanel ID="TabPanel3" runat="server" HeaderText="Test3">
        <ContentTemplate>Test3</ContentTemplate>
    </ajaxToolkit:TabPanel>
</ajaxToolkit:TabContainer>

最简单的方法是使用ScriptManager的PageMethod

1启用分页方法

<asp:ScriptManager runat="server" EnablePageMethods="true"></asp:ScriptManager>
3创建用于向服务器发送实际数据的js函数处理程序

<script type="text/javascript">

    function clientActiveTabChanged(sender, args) {

        PageMethods.SaveCurrentTab(sender.get_id(), sender.get_activeTabIndex());
    }

</script>

函数ClientActivateABC已更改(发送方,参数){
PageMethods.SaveCurrentTab(sender.get_id(),sender.get_activeTabIndex());
}
4将js处理程序附加到TabContainer

<ajaxToolkit:TabContainer ID="TabContainer1" runat="server" OnClientActiveTabChanged="clientActiveTabChanged">
    <ajaxToolkit:TabPanel ID="TabPanel1" runat="server" HeaderText="Test1">
        <ContentTemplate>Test1</ContentTemplate>
    </ajaxToolkit:TabPanel>
    <ajaxToolkit:TabPanel ID="TabPanel2" runat="server" HeaderText="Test2">
        <ContentTemplate>Test2</ContentTemplate>
    </ajaxToolkit:TabPanel>
    <ajaxToolkit:TabPanel ID="TabPanel3" runat="server" HeaderText="Test3">
        <ContentTemplate>Test3</ContentTemplate>
    </ajaxToolkit:TabPanel>
</ajaxToolkit:TabContainer>