我正在开发一个C#asp.net Web表单项目。它有两个母版页。一世 有一个用户控件从数据库中读取数据, 在html字符串中创建一个无序列表,并使用填充占位符 它。此用户控件必须是自动的 每2分钟刷新一次。我已将此usercontrol包含在父级中 母版页。我有以下代码来刷新 用户控件,我通过另一个stackoverflow答案获得。 问题是整个母版页刷新,我不知道为什么。
有没有办法只使用具有UpdatePanel的用户控件 刷新?
外主页:
<body>
<form id="frmMain" role="form" method="post" runat="server">
<div>
<uc2:PendingOrders runat="server" ID="PendingOrders" />
</div>
<asp:ContentPlaceHolder ID="MainBodyContent" runat="server">
</asp:ContentPlaceHolder>
</form>
</body>
用户控制:
<asp:ScriptManager ID="myScriptManager" runat="server"
EnablePartialRendering="True"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode = "Conditional"
runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="20000"
OnTick="Timer1_Tick"></asp:Timer>
<asp:PlaceHolder runat="server" id="lblMyOrders"></asp:PlaceHolder>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
用户控制代码背后:
protected void Timer1_Tick(object sender, EventArgs e)
{
//This method creates the html string with data as an unordered list
and
//populates asp:PlaceHolder inte updatepanel
GetData();
}
答案 0 :(得分:0)
UpdatePanel1的内容将由Timer1_Tick更新。
“整个母版页刷新”意味着当Timer1被触发时,母版页的Page_Load将被调用?
UpdatePanel始终发布整个页面返回服务器,只呈现UpdatePanel1的内容。
答案 1 :(得分:0)
我遇到了同样的问题,但是在我们的项目中,如果将MasterPartialRendering设置为true,则在整个母版页上将EnablePartialRendering设置为false。 为了解决该问题,我定义了另一个没有ScriptManager的母版页,并将ScriptManager添加到我想在其中使用UpdatePanels且EnablePartialRendering属性设置为True的页面上。 这解决了问题。
<asp:ScriptManager ID="myScriptManager" runat="server" EnablePartialRendering="True"></asp:ScriptManager>