【发布时间】:2014-10-09 08:05:56
【问题描述】:
我刚刚实现了一个小的UpdatePanel,在面板外部有一个按钮,用于修改其中的控件。根据指令here 和here 我已经在Page_Load 上设置了一个触发器,看起来像这样......
UpdatePanel1.Triggers.Add(item: new AsyncPostBackTrigger
{
ControlID = Button1.UniqueID
});
...为了让按钮点击事件异步更新面板(之前是刷新整个页面)。然而,现在它第一次工作是异步的,但之后的每 other 次点击都会触发整个页面刷新。我对那个很困惑。任何人都可以发现有什么问题吗? (编辑:为了澄清,以下表示页面加载后开始的一系列点击的刷新结果:Asynch(好),Whole Page(坏),Asynch,Whole Page,Asynch,Whole Page,等等……)
仅供参考,表单是 ASP.NET 4.0,并且驻留在 SharePoint 2013 可视化 Web 部件中,如果这很重要的话。
【问题讨论】:
-
考虑将您的代码更改为
aspx文件。也许你在错误的时间做这件事。在aspx中这样做可以解决其中的一些问题。 -
@VitorCanova 我会试试你的建议。就测序而言有什么区别?
-
我已经遇到了很多问题,因为我用了错误的方法(可能不是你的情况)或者在如此使用的
IsPostBackif语句中的错误位置。在aspx文件中定义时,ASP.NET 保证它会在需要时调用,在需要时调用,仅此而已。 -
@thanby,以声明方式(在您的 aspx 中)执行此操作可确保在正确的时间分配值。如果您在代码隐藏(即 Page_Load)中分配它,您将覆盖该默认行为(最终可能导致您没有在正确的时间分配它)。
标签: c# asp.net forms asynchronous