通过可见性动态设置TabContainer活动选项卡

时间:2012-10-16 03:46:57

标签: asp.net tabs ajaxcontroltoolkit

我正在使用AjaxControlToolkit TabContainer并动态设置TabPanel可见性。当隐藏(动态)活动选项卡时,整个选项卡控件被隐藏,所以为了避免这种情况,我写了这样的小方法(将第一个可见选项卡设置为活动选项卡)

private void SetActiveTab()
{
    if (tabControl1.Tabs[0].Visible)
    {
        tabControl1.ActiveTabIndex =0;
        return;
    }

    if (tabControl1.Tabs[1].Visible)
    {
        tabControl1.ActiveTabIndex = 1;
        return;
    }

    ...

}

但这对我来说感觉就像效率低下/丑陋的代码......,有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

选择任何

for (int tabIndex = 0; tabIndex < TabContainer1.Tabs.Count; tabIndex++)
{
    if(TabContainer1.Tabs[tabIndex].Visible)
    {
        TabContainer1.ActiveTabIndex = tabIndex;
        break;
    }
}

foreach (TabPanel tab in TabContainer1.Tabs)
{
    if (tab.Visible)
    {
        TabContainer1.ActiveTab = tab;
        break;
    }
}

var firstVisibleTab = TabContainer1.Tabs.OfType<TabPanel>().FirstOrDefault(tab => tab.Visible);
if (firstVisibleTab != null)
{
    TabContainer1.ActiveTab = firstVisibleTab;
}

此类排队的BTW更好地使用代码审查网站:Code Review