我遇到了与这里提到的相同的问题。
在网格视图中使用按钮字段并将按钮类型设置为"图像"时,单击它会发出 2 个 http 帖子。对于一次单击的这些多次回发,回发的值第一次为"false",第二次为"true"。如果按钮类型为链接或简单按钮,则其行为正常。
<asp:ButtonField ButtonType="Image" Text="Delete" CommandName="Delete"
CausesValidation="false" ImageUrl="../images/Delete.gif" ></asp:ButtonField>
Microsoft说这是一个已知问题,尚未修复,解决此问题的方法是使用模板字段,这在大多数情况下是一个很好的解决方案,但就我而言,我不能使用模板字段,按钮必须是图像类型。还有其他方法可以解决此问题吗?
更新:IE6,7,8所有版本都有相同的问题。如果有一些解决方法,请发布。
更新2:"Request.HttpMethod"的值始终为"POST",即使两个回发对IsPostback的值不同。检查此问题可能是一种可能的修复方法,但必须在上述方案中网格与 ButtonField 列一起使用的每个页面上完成。有什么比这个更好的想法吗?
如 http://connect.microsoft.com/VisualStudio/feedback/details/104617/double-postback-using-buttonfield 中所述
您可以将按钮字段更改为图像按钮