单击 Gridview 中的 LinkBut​​ton:为什么 Grid 大部分时间都会重新加载,但并非总是如此?

Click on LinkButton in Gridview: why is the Grid reloaded most of the times but not always?

我试图理解 GridView/Repeater 令人讨厌的刷新,大多数时候我单击该元素中的 LinkBut​​ton 时都会出现这种情况。如果这是由 Postback 引起的,那么为什么它不会一直发生呢? 如果它不是总是引起的,我什至可以摆脱它吗?

我通常这样做是为了获取有关在网格或转发器中单击的单元格的详细信息:

<asp:LinkButton ID="ButtonSelect" runat="server" CommandName ="Select" CommandArgument = '<%# Eval("date") %>' Text='<%# Bind("TAG") %>' OnClick="GetDetails"/>

在"GetDetails"方法中处理的数据将显示在其他元素中。不需要刷新网格。

这是在 GridView 中单击任何 LinkBut​​ton 的正常行为吗?

马丁

这是网格视图中服务器按钮的正常操作。它会导致回发。回发将强制页面生命周期。整个页面将被重新创建,数据绑定可能会也可能不会发生,具体取决于您的缓存选项和编程。

"Fixing" 这实际上取决于您要完成的任务。如果只是因为回发而停止 "screen flicker",请考虑使用 AJAX 调用或 <asp:UpdatePanel> 服务器控件。

如果您正在尝试在客户端使用 JS,并且只是希望将回发推迟到以后,请将按钮转换为模板字段并将 <asp:LinkButton> 替换为基本的 html 控件<a href="javascript:void();" ...><button type='button'><input type='button' ...、等等...