C# 如何阻止UpdatePanel导致整个页面回发?
我正在使用.NET3.5并在CommunityServer2008框架内构建页面 在其中一个页面上,我试图让UpdatePanel正常工作 我直接从ASP.NET网站获取了一个示例,通过单击按钮将UpdatePanel中的时间更新为当前时间,但由于某些原因,当我尝试执行该功能时,整个页面都会刷新 以下是我所拥有的:C# 如何阻止UpdatePanel导致整个页面回发?,c#,asp.net,.net-3.5,updatepanel,community-server,C#,Asp.net,.net 3.5,Updatepanel,Community Server,我正在使用.NET3.5并在CommunityServer2008框架内构建页面 在其中一个页面上,我试图让UpdatePanel正常工作 我直接从ASP.NET网站获取了一个示例,通过单击按钮将UpdatePanel中的时间更新为当前时间,但由于某些原因,当我尝试执行该功能时,整个页面都会刷新 以下是我所拥有的: protected void Button1_Click(object sender, EventArgs e) { Label1.Text = "Panel refresh
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Panel refreshed at " + DateTime.Now.ToString();
Label2.Text = "Panel refreshed at " + DateTime.Now.ToString();
}
更新面板
每当我点击按钮,确保面板更新-但整个页面发回!我可以看到整个页面在闪烁。我到底做错了什么
我在嵌套母版页中,但我不确定这是否有问题。我正在使用的社区服务器框架中是否存在导致所有事件回发的内容?我在上面的代码示例中没有看到Label2。如果Label2位于UpdatePanel之外,则会发生整个页面刷新,因为这是页面正确更新Label2所必需的
默认情况下,当UpdatePanel中的控件触发时,UpdatePanel将仅动态刷新其中的内容。如果您需要进行一些更高级的更新,比如面板外的按钮导致刷新或其他面板中的标签被更新,那么您需要在UpdatePanel上设置Conditional属性,并在代码中进行一些手动更新调用。set
ChildrenAsTriggers=“true”
在UpdatePanel控件上。是否尝试将按钮1
设置为触发器部分中的AsyncPostBackTrigger
?将ChildrenAsTriggers
属性设置为true
,并将UpdateMode
属性设置为条件
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Panel refreshed at " + DateTime.Now.ToString();
UpdatePanel1.Update();
}
更新面板
“默认情况下,当UpdatePanel中的控件触发时,UpdatePanel将仅动态刷新其中的内容。”
否则将刷新整个页面!这就是重点 另一个可能的原因是,如果页面具有clientdmode=“static”
,则您希望仅刷新UpdatePanel的控件将刷新整个页面
要解决此问题,您只需在控件上设置clientdmode=“AutoID”
,该控件将触发UpdatePanel回发。如果您有一个从.net framework v1.1升级的旧项目,则从web配置中删除此行以使其正常工作:
<xhtmlConformance mode="Legacy"/>
asyncpostbacktrigger的触发器部分让我很高兴,非常感谢!!有人能解释为什么需要这个显式异步触发器吗?UpdatePanel中的控件在默认情况下不应该导致部分页面更新吗?我已设置了所有内容,但我的页面仍在刷新整个页面:/n这如何回答问题?这正是我的问题。两年后,它回答了这个问题,因为从web.config中删除它实际上阻止了整个页面的回发。这对我也非常有帮助。非常感谢。我也有类似的问题。也许你能帮忙