Asp.net Net-UpdatePanel不';不要删除旧内容

Asp.net Net-UpdatePanel不';不要删除旧内容,asp.net,asp.net-ajax,user-controls,ajax.net,Asp.net,Asp.net Ajax,User Controls,Ajax.net,我正在用户控件中使用AJAX.Net(3.5)。 usercontrol包含一个UpdatePanel,UpdatePanel中有一个多视图。 ScriptManager包含在作为usercontrol容器的页面中 要在视图之间切换,usercontrol包含一个简单的按钮。 当我单击它时,视图将更改,以便隐藏旧内容并显示新内容。 我的问题是内容根本没有隐藏。 视图将更改,并显示新内容,但旧内容仍保留在页面上。 为了解决这个问题,我尝试更改多视图并切换简单标签的可见性,但行为是相同的。 有什么想

我正在用户控件中使用AJAX.Net(3.5)。 usercontrol包含一个UpdatePanel,UpdatePanel中有一个多视图。 ScriptManager包含在作为usercontrol容器的页面中

要在视图之间切换,usercontrol包含一个简单的按钮。 当我单击它时,视图将更改,以便隐藏旧内容并显示新内容。 我的问题是内容根本没有隐藏。 视图将更改,并显示新内容,但旧内容仍保留在页面上。 为了解决这个问题,我尝试更改多视图并切换简单标签的可见性,但行为是相同的。 有什么想法吗?

打电话

updatepanel.Update() 
在对updatepanel进行更改之后

或尝试

 updatepanel.Controls.Clear();

如果表的一部分位于UpdatePanel之外,那么AJAX.Net似乎不能很好地工作

在我的控件上,我想显示或隐藏表中的一些行。我只在updatepanel中包含了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>
两个标签的文本都显示在页面上(lblToHide不隐藏)


如果您将表标签移动到内部更新面板,一切都会正常工作。

哦,我明白了。那没关系。这里的问题不在于Ajax。只是你不能在
标签中嵌入一些东西。在这种情况下,您可以尝试与
控件不同的方法。可能是
或其他东西。我不知道你的处境到底如何。也许你可以解释一下你想要达到的结果,这样我可以给你一些建议


关于

您使用什么方法切换可见性?updatepanel.Update();这并不能解决问题。updatepanel.Controls.Clear();在显示新内容之前删除新内容,但旧内容仍保留在原来的位置(页面不会更改)。是否可以为源代码添加新内容?UpdatePanel是否向浏览器呈现div?如果是的话,这也许可以解释你看到的问题。是的。每个UpdatePanel都在一个div中呈现:(在我的实际代码中,我在表中有一个多视图。我使用不同的视图来更改表中的行。当我更改视图时,我希望看到新行并隐藏旧行。如果我将表包括在UpdatePanel中,一切正常(我认为整个表都已更新)这是有道理的。在表中只有表元素是有效的。
lblToShow.Visible = true;
lblToHide.Visible = false;