ASP.NET在TabContainer中的Postback上维护ActiveTabIndex

时间:2010-09-23 11:55:28

标签: asp.net ajaxcontroltoolkit tabcontainer

之前可能已经多次询问过了,但我想知道如何维护AjaxControlToolKit TabContainer的ActiveTabIndex。

我能想到实现这样的事情的唯一方法是在会话中存储ActiveTabIndex并在回发时检查它。还有其他解决方案可以解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

最有可能this回答您的问题。当这些东西尚未保存在那里时,它们属于Page的ViewState。

编辑: 另一方面:我已经测试了它,我的ActiveTabIndex维持(异步)回发。

答案 1 :(得分:1)

没有必要把这个会话搞乱,玛拉基。

将其放入“ActiveTabChanged”事件处理程序中(假设您使用的是C#):

int iTabIndex = int.Parse(Request.Params["__EVENTARGUMENT"].Split(':')[1]);

然后根据“iTabIndex”的值执行您需要的任何逻辑。

答案 2 :(得分:0)

您需要为选项卡容器添加ActiveTabChanged事件,并且可以将活动选项卡索引保持在视图状态,并且在页面加载时只检查它是否为空,然后将其设置为活动选项卡索引。

 protected void TabContainer1_ActiveTabChanged(object sender, EventArgs e)
    {
        ViewState["ActiveTabIndex"] = TabContainer1.ActiveTabIndex;

    }

PageOnLoad事件代码

if (!(ViewState["ActiveTabIndex"] == null) )
        {            
               TabContainer1.ActiveTabIndex = (int)ViewState["ActiveTabIndex"];          

        }

确保在TabContainer标记

中添加以下属性
AutoPostBack="true" OnActiveTabChanged="TabContainer1_ActiveTabChanged"