我有一个网格视图,位于页面上的模式弹出窗口的更新面板内。
问题是,每次我单击网格视图中的图像按钮时,整个页面都会刷新。这会导致我的整个页面加载,并且由于我已将页面的其余部分变灰,以便用户无法单击它,这非常烦人。

有谁知道我缺少什么。

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

有帮助吗?

解决方案 5

几个月后,这个问题得到了解决。我正在从事的项目是以前的v1.1,已转换为2.0。然而,在 web.config 中,这一行仍然存在:

<xhtmlConformance mode="Legacy"/>

当它被注释掉时,我们似乎在 ajax 控制工具包中遇到的所有错误都消失了

其他提示

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

UpdatePanel 上有 ChildrenAsTriggers="false" 吗?

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

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

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

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

所以,总而言之,检查你的按钮是否有一个 ID!

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

<asp:Button ID="btnRefresh" runat="server" OnClick="btnRefresh_Click" Style="display: none" UseSubmitBehavior="false" />

模态窗口是使用IE模态窗口弹出的吗?或者它是您显示的 DIV?

如果它是 IE 模态弹出窗口,您需要确保有

   <base target="_self" /> 

确保回发到模式页面。

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

我将保留 onClick 并将其设置为 updatePanel 的触发器。

奇怪的是它在 FF 中有效,但在 IE 中无效。这与我们经历的行为相反。

UpdatePanel 可能对格式错误的 HTML 很敏感。从浏览器中查看源代码并通过 W3C 验证器之类的工具运行它以查找任何奇怪的内容(未封闭的 div 或表格是通常的嫌疑人)

如果您使用 Firefox,则可以使用 HTML 验证器扩展/插件,效果非常好。

以供参考..

我还注意到,当使用可怕的 <asp:UpdatePanel ... /><asp:LinkButton ... />, 那还有 UpdateMode="Conditional"UpdatePanel 还需要进行以下其他更改:

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

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

Button.attribute.add("onclick","返回 false;");

样本:

string PopupURL = Common.GetAppPopupPath() + "Popups/StockChart.aspx?s=" + symbol;
hlLargeChart.Attributes.Add("onclick", String.Format("ShowPopupStdControls(PCStockChartWindow,'{0}');return false;", PopupURL));
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top