代码之家  ›  专栏  ›  技术社区  ›  nicoruy

ajax.net-updatepanel不删除旧内容

  •  0
  • nicoruy  · 技术社区  · 17 年前

    我在一个用户控件内使用Ajax.net(3.5)。 usercontrol包含一个updatepanel,在updatepanel中有一个多视图。 脚本管理器包含在用作用户控件容器的页面中。

    要在视图之间切换,用户控件包含一个简单按钮。 当我单击它时,视图会更改,因此旧内容会被隐藏并显示新内容。 我的问题是内容根本不隐藏。 视图更改并显示新内容,但旧内容仍保留在页面上。 为了隔离这个问题,我尝试改变一个简单标签的多视图和切换可见性,但是行为是相同的。 有什么想法吗?

    3 回复  |  直到 17 年前
        1
  •  1
  •   Iralda Mitro    17 年前

    哦,我明白。那就好了。这里的问题不是Ajax。只是你不能把东西嵌入 <table> 标签。在这种情况下,您可以尝试不同于 <表& gt; 控制。也许是 <div> 或者别的什么。我不知道你到底是什么情况。也许你能解释一下你想要达到的结果,这样我可以给你一些建议。

    当做

        2
  •  0
  •   Iralda Mitro    17 年前

    呼叫

    updatepanel.Update() 
    

    对更新面板进行更改后

    或尝试

     updatepanel.Controls.Clear();
    
        3
  •  0
  •   nicoruy    17 年前

    如果在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不隐藏)

    如果你移动 桌子 标签 里面 更新面板一切正常。

    推荐文章