Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何阻止UpdatePanel导致整个页面回发?_C#_Asp.net_.net 3.5_Updatepanel_Community Server - Fatal编程技术网

C# 如何阻止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

我正在使用.NET3.5并在CommunityServer2008框架内构建页面

在其中一个页面上,我试图让UpdatePanel正常工作

我直接从ASP.NET网站获取了一个示例,通过单击按钮将UpdatePanel中的时间更新为当前时间,但由于某些原因,当我尝试执行该功能时,整个页面都会刷新

以下是我所拥有的:

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中删除它实际上阻止了整个页面的回发。这对我也非常有帮助。非常感谢。我也有类似的问题。也许你能帮忙