【发布时间】:2011-12-05 18:29:09
【问题描述】:
我对此感到困惑。我有一个包含 3 个表格的网络表单。我想根据某些条件显示/隐藏它们。除了在一种情况下,一切都很好。
这就是我所拥有的:
<asp:UpdatePanel ID="upGeneral" runat="server" >
<ContentTemplate>
<table id="tab1" runat="server" visible="true" width="100%">
...
</table>
<table id="tab2" runat="server" visible="false" width="100%">
...
</table>
<table id="tab3" runat="server" visible="false" width="100%">
...
</table>
</ContentTemplate>
</asp:UpdatePanel>
然后,我在页面中添加了几个按钮,根据按下的按钮,我将更改表格的可见性。 我的问题是,在某些情况下,我将 tab3 的可见性更改为 true,将 tab1 和 tab2 的可见性更改为 false,虽然 tab1 的可见性设置为 false,但 tab3 的可见性不会设置为 true……叹息!
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
...
if (!editMode)
{
tab1.Visible = false;
tab2.Visible = false;
tab3.Visible = true;
}
}
}
在调试模式下,当我阅读这些说明时,tab3.visibile = true 不会改变 tab3 的属性! 你以前有过这种情况吗?你是怎么解决的?
非常感谢!
【问题讨论】:
-
代码和概念看起来不错。您是否有可能拥有多个名为 tab3 的元素?
-
没有。只有一个。这令人费解,因为它在我必须显示的按钮中运行良好。但是,在这种情况下,我想在页面加载时立即显示 tab3
-
因此,当您第一次加载页面时,它肯定会命中该行但会产生错误的效果(即不显示表 3)。页面加载调用后是否有任何 css 或语句可能覆盖您正在调用的函数?
-
我想知道操作按钮是否在更新面板内。如果它在其他更新面板中,您需要将其添加到触发器列表中