即使gridview位于更新面板中,整页也会刷新

时间:2008-08-29 17:21:32

标签: asp.net gridview asp.net-ajax updatepanel

我有一个gridview,它位于我在页面上的模式弹出窗口的更新面板中 问题是,每次单击gridview中的图像按钮时,整个页面都会刷新。这导致我的整个页面加载,因为我已经灰显了页面的其余部分,以便用户无法点击它,这非常烦人。

有没有人知道我错过了什么。

修改:我在底部输入了更好的解决方案

10 个答案:

答案 0 :(得分:3)

确保UpdatePanel上有以下设置: ChildrenAsTriggers = false,UpdateMode =条件

答案 1 :(得分:2)

你在UpdatePanel上有ChildrenAsTriggers =“false”吗?

页面上是否有任何javascript错误?

答案 2 :(得分:2)

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

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

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

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

几个月后,这个问题得到解决。我工作的项目是之前的v1.1,它是用2.0转换的。但是,在web.config中,这一行仍然存在:

<xhtmlConformance mode="Legacy"/>

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

答案 5 :(得分:0)

使用IE模态窗口弹出模态窗口吗?或者它是你正在展示的DIV?

如果是IE模式弹出窗口,则需要确保

   <base target="_self" /> 

确保帖子回到模态页面。

如果是DIV,请确保您的XHTML正确或者可能不知道要更新的内容。

答案 6 :(得分:0)

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

奇怪的是,它适用于FF而不是IE。这与我们所经历的行为相反。

答案 7 :(得分:0)

UpdatePanels可能对格式错误的HTML敏感。从您的浏览器中查看源代码并通过类似W3C验证器的方式运行它以寻找任何奇怪的东西(未封闭的div或表格是通常的嫌疑人)

如果您使用Firefox,则可以使用HTML验证器Extension / AddOn,效果非常好。

答案 8 :(得分:0)

供参考..

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

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

答案 9 :(得分:0)

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

button.attribute.add(“onclick”,“return false;”);

<强>示例:

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