c# - AJAXToolkit动态隐藏选项卡?

标签 c# asp.net

我知道如何隐藏选项卡:

MyTabContainerID.Tabs[1].Visible = false;

这有效。我遇到的问题是更改由 radioButtonList selectedIndexChanged 事件回发触发的选项卡的可见性。

当页面到达我的 selectedIndexChanged 事件处理程序时,选项卡已经从 ViewState 加载了 Visible=True。我可以在 selectedIndexChanged 事件中将其更改为 false 一整天,它不会隐藏已加载的选项卡。

ASPX

<asp:RadioButtonList ID="rblMyRadioButtonList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="rblMyRadioButtonList_SelectedIndexChanged">                                                        
<asp:ListItem Text="Yes" Value="True" Selected="True"></asp:ListItem>
<asp:ListItem Text="No" Value="False"></asp:ListItem>

ASCX

protected void Page_Init(object sender, EventArgs e)
{
    try
    {
        MyTabContainerID.Tabs[1].Visible = Tab1Visibility;
    }
    catch (Exception ex)
    {
        common.alert("Error in PageName.Page_Init.<br>ERROR=" + ex.Message);
    }
}
protected void rblMyRadioButtonList_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {       
        Tab1Visibility = Convert.ToBoolean(((RadioButtonList)sender).SelectedValue);
        MyTabContainerID.Tabs[1].Visible = Tab1Visibility;  //BY THE TIME THIS HAPPENS IT'S ALREADY ON THE PAGE WITH VISIBLE=TRUE                   
    }
    catch (Exception ex)
    {
        common.alert("Error in PageName.rblMyRadioButtonList_SelectedIndexChanged.<br>ERROR=" + ex.Message);
    }
}

protected bool Tab1Visibility
{
    get { return (bool)Session["ses_bTab1Visibility"]; }
    set { Session["ses_bTab1Visibility"] = value; }
}

想法?有建议吗?

最佳答案

您应该能够在 rblMyRadioButtonList_SelectedIndexChanged 方法中设置选项卡控件的可见性。即使选项卡控件的状态此时已从 ViewState 加载,它仍然可以被覆盖。

我遇到了类似的问题,无法设置可见性。这让我发疯。解决方案是在容器(父)控件中显式设置可见性。这将覆盖子控件的设置。这可能是你的问题。

除此之外,再做平常的事情。 rblMyRadioButtonList_SelectedIndexChanged 上的断点并监视值。另外 - 您可以手动强制 Page_PreRender 上的可见性 - 这仍然在下游。

编辑

另一个可能影响它的事情是更新面板。如果单选按钮列表位于更新面板中,而选项卡位于更新面板之外,则更新将不起作用,因为带有选项卡的页面部分不会刷新。

关于c# - AJAXToolkit动态隐藏选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11156553/

相关文章:

c# - 如何从异常中获取 IIS 子状态代码?

c# - 指定的转换无效

asp.net - 如何在 asp.net Label 控件中显示带下划线的字符串的一部分?

c# - 无法上传大视频文件

asp.net - 在 Ubuntu 上更新到 mono 4.0.1 后出现问题

c# - 有什么方法可以用相同的编译器警告更改每一行代码?

c# - 你如何扩展(或者你能否扩展)静态数学方法?

C# 4 默认参数值 : How to assign a default DateTime/object value?

c# - spring.net有什么用?

c# - Enumerable.Except 不使用我的自定义比较器