asp.net:更新页面内容而不刷新(部分页面更新)

时间:2016-02-27 17:31:40

标签: c# asp.net partial-page-refresh

实际上我正在尝试更新页面而不刷新整页,即部分页面更新。网页结构是

<%@ Page Title="Test Page" Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="WebApp.Test" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager runat="server"></asp:ScriptManager>
            <asp:DropDownList AutoPostBack="true" ID="dropDownName" runat="server"></asp:DropDownList>                
            <asp:UpdatePanel ID="UpdatePanel" runat="server">
                <ContentTemplate>
                     Last update:  <%=DateTime.Now.ToString() %>
                    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </form>
</body>
</html>

现在我可以看到,当我的事件发生时,它会做一切正确的事情,比如阅读内容,用正确的更新信息更新页面上的控件,并将内容webControls添加到这样的占位符

void Contnt_Update(object sender)
{
 PlaceHolder1.Controls.Add(newLabel);   
}

但它只是没有更新“观看次数”&#39; (意思是我没有在网页上看到更新的信息),也没有更新“最后更新时间”的时间。 知道我做错了什么吗?任何帮助将非常感激,因为我花了相当多的时间在它上面而没有得到任何地方..

1 个答案:

答案 0 :(得分:1)

您可以尝试使用UpdatePanel.Update();强制进行更新,并按照此处提供的其他建议进行操作:ASP.NET refresh Update Panel

<强>更新: 强制刷新UpdatePanel的另一种方法是在面板中包含一个Timer,而不需要用户的任何操作,如建议here