在ASP.NET中两次回发

时间:2009-06-26 02:08:01

标签: asp.net ajax master-pages postback

我的页面完全回发两次。我正在使用AJAX的母版页。母版页的结构如下。

+---------------------------------------------+

|  Web User Control with AJAX Tab Control     |

+---------------------------------------------+

|        |                     |              |

| Col1   | ContentPlaceHolder  |   Col3       |

|        |                     |              |

|        |                     |              |

+---------------------------------------------+

Web用户控件包含带有AutoPostback的AJAX选项卡容器。

我使用此主页创建了几个ASPX页面。

内容占位符还根据页面获取Web用户控件。

每当我通过单击选项卡跳转页面时,页面都会完全回发两次。我不明白是什么原因。这使得查看报告变得繁琐,因为它需要两倍的时间。

请访问 - http://softwaregenius.net/ivnew4了解相关信息。我无法提供loginid。

7 个答案:

答案 0 :(得分:4)

当Page指令autoeventwireup为true并且您将事件OnInit附加到Page_Load之类的事件时,这些事件将被引发两次,使其看起来像双回发。它也可能是其他东西。

答案 1 :(得分:1)

我们可能需要更多信息,但您如何布局和配置更新面板?你有更新面板吗?

如果您没有更新面板,则会发生自动回发,并且会回发整个页面。如果控件被更新面板包围,则只重新呈现更新面板。

答案 2 :(得分:1)

对于我而言,双重帖子往往缺少资源或没有src的图像标签 - E.G.

<img src=""/>

答案 3 :(得分:1)

页面中是否有任何代码可以让您回发两次 尝试使用方法if(!page.ispostback){}
我认为这不是因为AJAX。

答案 4 :(得分:1)

我处于确切的状况并且在很长一段时间内感到沮丧。以为某人可能仍然觉得这很有用。我的页面涉及很多自定义ajax调用(不是更新面板),当回发保存时(实现请求[“..”]样式而不是control.value样式 - 因为控件是通过Ajax动态创建的),回发发生了两次。有两个解决方案,两者都很简单:

  1. 将AutoEventWireup设置为false(这也会禁用某些自定义控件,例如数据连接的数据网格,就像我的情况一样)
  2. 对于那些要求AutoEventWireup为true的人,只需确保所有回发控件或按钮都不是服务器控件,而是它们必须是标准HTML标记,并且不应该有runat =“server”。
  3. 就是这样!

答案 5 :(得分:0)

我们遇到同样的问题,这是由标签<img>我们的<asp:Image>没有“src =”引起的 这一事实适用于Chrome或IE8或更高版本。

[Nos tivemos o mesmo problema e ele é causado pela falta dos src nos controles <img> e <asp:Imagem> . Isso ocrre apenas nos chrome ou no ie8 acima]

答案 6 :(得分:0)

尝试此解决方案,您只需要在脚本管理器

之后复制粘贴一些JS

https://stackoverflow.com/a/22822756/1106625