2009-10-29 116 views
1

我创建了一个标记接口:ASP.NET的UpdatePanel回发

public interface ISupportAJAXPostsBacks{} 

我把它添加到我的网页..

public partial class MyWebForm : PageBase, ISupportAJAXPostsBacks 

我有这样的检查在我PageBase类...

if(this is ISupportAJAXPostsBacks) 
{ 
    ... do some stuff ... 
} 

如果我通过调试器单步执行,“This is ISupportAJAXPostsBacks”的计算结果为初始页面加载时为true,但计算结果为false UpdatePanel在同一页面上发布。 (划痕头)

在封面下发生了什么事情导致这件事,我能做些什么呢?

+0

可能是因为只更新面板的内容正在刷新,而不是整个页面。这可能都取决于对if语句的调用的位置。 – ChadNC 2009-10-29 16:28:38

+0

您是否可以在检查'This is ISupportAjax'之前添加此代码: Console.WriteLine(GetType()。FullName); 并告诉我们什么是写在输出视图的Visual Studio? – 2009-10-29 16:53:15

回答

1

当你的页面第一次加载时,“this”是整个​​页面,但是当你部分回发时,“this”只成为回发的部分,与整页不一样,所以它不会实现你的界面。

0

我无法复制您的情况,但有些想法需要检查的事项......

-the if语句应该是onload事件句柄的覆盖在你的PageBase

-the if语句应该是前在覆盖方法的base.OnLoad(五)调用

您ScriptManager控件 - 检查设置...特别是的EnablePartialRendering和的EnablePageMethods

我认为,如果你的最后一个项目只能是一个问题实际上是使用这些方法,但如果你确实启用了它们,我会尝试禁用它们。希望有所帮助。