隐藏标签容器中的2个标签是否可行?

时间:2010-06-24 00:19:34

标签: asp.net ajax

嘿伙计们我遇到了一个奇怪的问题..基本上,用户登录页面并根据他的角色状态(管理员或用户)确定他在tabcontainer中看到的标签数量。如果他只是一个“用户”,则需要隐藏选项卡索引0和1,因为它们只包含管理员功能。

这样做很简单:

if(user)
{
  Container.Tabs[0].visible = false;
  Container.Tabs[1].visible = false;
}

但问题是,如果我将多个选项卡索引设置为visible = false,则整个容器都会消失。这可能是个错误吗?我知道你一次只能看到一个标签。

有修复吗?或者我应该使用多视图?

谢谢,乔希

2 个答案:

答案 0 :(得分:1)

看起来这可能是Ajax Control Toolkit的一个错误,我测试了最新版本(.net 3.5)并且能够重现问题。当将标签0设置为可见时,工具包似乎不喜欢它,其他可见/不可见标签的数量无关紧要。

我建议您通过以下方式解决这个问题:

if(user)
{
   Container.Tabs.Remove(0);
   Container.Tabs.Remove(1);
}

这具有相同的效果,并且由于您的选项卡是通过ASPX标记定义的,所以在没有删除调用的情况下执行回发将导致选项卡重新出现(如果由于某种原因需要重新显示它们)。

答案 1 :(得分:1)

Container.Tabs[0].enabled = false

这是我提出的最佳解决方案......