关于asp.net:即使gridview在更新面板中,整个页面也会刷新

关于asp.net:即使gridview在更新面板中,整个页面也会刷新

Entire Page refreshes even though gridview is in an update panel

我在页面上的模式弹出窗口的updatepanel中有一个gridview。
问题是,每次我单击gridview中的imagebutton时,整个页面都会刷新。这将导致整个页面加载,并且由于我已经将页面的其余部分显示为灰色,因此用户无法单击它,这非常烦人。

有人知道我想念的东西吗?

编辑:我在底部输入了一个更好的解决方案


确保在UpdatePanel上进行以下设置:
ChildrenAsTriggers = false和UpdateMode = Conditional


我遇到了这个问题,并遇到了以下文章:

http://bloggingabout.net/blogs/rick/archive/2008/04/02/linkbutton-inside-updatepanel-results-in-full-postback-updatepanel-not-triggered.aspx

我的按钮不是像本示例中那样在代码中动态创建的,但是当我检查aspx中的代码时,一定要确定它缺少ID属性。添加ID后,回发将变为异步状态并开始按预期方式运行。

因此,总而言之,请检查您的按钮是否具有ID!


您在UpdatePanel上是否有ChildrenAsTriggers =" false"?

页面上是否存在任何JavaScript错误?


几个月后,此问题已解决。我正在处理的项目是以前的v1.1,后来被2.0转换了。但是,在web.config中,以下行仍然存在:

1
<xhtmlConformance mode="Legacy"/>

当它被注释掉时,我们似乎对ajax控件工具包所拥有的所有错误都消失了


您是否正在Firefox或IE中进行测试?我们有一个类似的问题,整个页面在Firefox(而不是IE)中刷新。为了解决这个问题,我们使用了一个隐藏的asp:button,其中设置了useSubmitBehavior =" false"。

1
 

为防止回发,请在onclick事件中添加return false。

button.attribute.add(" onclick"," return false;");

样品:

1
2
string PopupURL = Common.GetAppPopupPath() +"Popups/StockChart.aspx?s=" + symbol;
hlLargeChart.Attributes.Add("onclick", String.Format("ShowPopupStdControls(PCStockChartWindow,'{0}');return false;", PopupURL));

供参考..

我还注意到,当使用可怕的时,以及UpdatePanel上的UpdateMode="Conditional"时,还需要进行以下其他更改:

  • 上需要ViewStateMode="Enabled"(我在MasterPage中将其设置为Disabled)
  • ClientIDMode="Static"必须从<%@ Page ... />中删除

UpdatePanels可能对格式错误的HTML敏感。在浏览器中执行查看源代码,并通过W3C验证程序之类的程序运行它,以查找任何奇怪的内容(未封闭的div或表通常是可疑的)

如果您使用的是Firefox,则可以使用HTML验证程序扩展程序/插件,效果很好。


我将离开onClick并将其设置为updatePanel的触发器。

奇怪的是,它可以在FF而不是IE中使用。这与我们的行为相反。


使用IE Modal窗口是否弹出了Modal窗口?还是显示的DIV?

如果它是IE Modal弹出窗口,则需要确保您具有

1
   <base target="_self" />

确保回发到模式页面。

如果它是DIV,请确保您的XHTML正确,否则可能不知道要更新什么。


推荐阅读