我有一个 gridview,它位于页面上的模式弹出窗口的更新面板中。
问题是每次我单击 gridview 中的图像按钮时,整个页面都会刷新。这会导致我的整个页面加载,并且由于我已将页面的其余部分显示为灰色,因此用户无法点击它,这非常烦人。
有人知道我错过了什么吗?
编辑:我在底部输入了一个更好的解决方案
确保在 UpdatePanel 上设置了以下内容: ChildrenAsTriggers=false 和 UpdateMode=Conditional
UpdatePanel 上有 ChildrenAsTriggers="false" 吗?
页面上是否有javascript错误?
我遇到了这个问题并遇到了以下文章:
我的按钮不是像本例中那样在代码中动态创建的,但是当我检查 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" />
几个月后,这个问题得到了解决。我从事的项目是以前的 v1.1,它是用 2.0 转换的。然而,在 web.config 中,这一行仍然存在:
<xhtmlConformance mode="Legacy"/>
当它被注释掉时,我们似乎在 ajax 控制工具包中遇到的所有错误都消失了
Modal Window是使用IE Modal window弹出的吗?还是您正在展示的 DIV?
如果它是一个 IE 模态弹出窗口,您需要确保您有
<base target="_self" />
确保回发到模态页面。
如果它是 DIV,请确保您的 XHTML 正确,否则它可能不知道要更新什么。
我会保留 onClick 并将其设置为 updatePanel 的触发器。
奇怪的是它在 FF 而不是 IE 中工作。这与我们经历的行为相反。
UpdatePanels 可能对格式错误的 HTML 很敏感。从您的浏览器查看源代码并通过 W3C 验证器之类的东西运行它以查找任何奇怪的东西(未关闭的 div 或表格是通常的嫌疑人)
如果您使用 Firefox,可以使用 HTML 验证器扩展/附加组件,效果非常好。
供参考..
我还注意到,当使用可怕的
<asp:UpdatePanel ... />
和 <asp:LinkButton ... />
时,以及 UpdateMode="Conditional"
上的 UpdatePanel
还需要以下其他更改:
ViewStateMode="Enabled"
在<asp:Content ... />
上是必需的(我在Disabled
中设置为MasterPage
)ClientIDMode="Static"
必须从<%@ Page ... />
为了防止回发,将 return false 添加到 onclick 事件。
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));
就我而言,这对我有用:
更改 web.config
<xhtmlConformance mode="Transitional"/>
'default.aspx
asp:GridView ID="GridView1" runat="server" Width="940px"
HorizontalAlign="Center"
OnRowCommand="GridView1_RowCommand" AutoGenerateColumns="false"
AllowPaging="true" PageSize="5"
DataKeyNames="idarea" CssClass="table table-hover table-striped"
OnPageIndexChanging="GridView1_PageIndexChanging"
'default.aspx.vb
Protected Sub GridView1_PageIndexChanging(sender As Object, e As
GridViewPageEventArgs) Handles GridView1.PageIndexChanging
BindGrid()
GridView1.PageIndex = e.NewPageIndex
GridView1.DataBind()
End Sub
谢谢你的提示。 路易斯帕伦西亚