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