我在用户控件中使用 AJAX.Net (3.5)。用户控件包含一个UpdatePanel,在UpdatePanel 内部有一个MultiView。ScriptManager 包含在充当用户控件容器的页面中。
要在视图之间切换,用户控件包含一个简单的按钮。当我单击它时,视图会更改,因此隐藏旧内容并显示新内容。我的问题是内容根本没有隐藏。视图发生变化并显示新内容,但旧内容仍保留在页面上。为了隔离问题,我尝试更改简单标签的多视图和切换可见性,但行为是相同的。有任何想法吗?
我在用户控件中使用 AJAX.Net (3.5)。用户控件包含一个UpdatePanel,在UpdatePanel 内部有一个MultiView。ScriptManager 包含在充当用户控件容器的页面中。
要在视图之间切换,用户控件包含一个简单的按钮。当我单击它时,视图会更改,因此隐藏旧内容并显示新内容。我的问题是内容根本没有隐藏。视图发生变化并显示新内容,但旧内容仍保留在页面上。为了隔离问题,我尝试更改简单标签的多视图和切换可见性,但行为是相同的。有任何想法吗?
哦,我懂。那就没事了。这里的问题不在于 Ajax。只是你不能在<table>
标签中嵌入一些东西。在这种情况下,您可以尝试与控件不同的东西<table>
。也许是一个<div>
或别的什么。不知道你具体是什么情况。也许你解释一下你想要达到的结果,这样我就可以给你一些建议。
问候
如果您在 UpdatePanel 之外有表格的一部分,那么 AJAX.Net 似乎不能很好地工作。
在我的控件上,我想显示或隐藏表格的某些行。我在更新面板中只包含了tr和td标签。
要重现问题:
<table>
<asp:UpdatePanel ID="UpdatePanel" runat="server">
<ContentTemplate>
<tr>
<td>
<asp:Label ID="lblToShow" runat="server" Text="Label to show" Visible="false" />
<br />
<asp:Label ID="lblToHide" runat="server" Text="Label to hide" />
</td>
</tr>
</ContentTemplate>
</asp:UpdatePanel>
</table>
如果您使用以下方法更改可见性:
lblToShow.Visible = true;
lblToHide.Visible = false;
两个标签的文本都显示在页面上(lblToHide 不隐藏)
如果您在 UpdatePanel内移动表格标签,一切正常。
称呼
updatepanel.Update()
对更新面板进行更改后
或尝试
updatepanel.Controls.Clear();