我有一个只能工作一次的链接按钮,第二次点击在Chrome中没有响应,但它在Internet Explorer中有效。这只发生在我的生产环境中,但开发工作正常。
在调试时,我可以说它没有到达我的linkEdit_Click
Sub。
我尝试使用EnableViewState="false"
但它没有用。
我已经改变了如何调用linkEdit_Click
的方式,在gridview中使用CommandArgument并为OnClick
更改OnCommand
。
在DevTools中,我注意到第二次单击时出现403禁止错误,但我不知道如何修复它
我的代码是这样的:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="grid1>
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="linkEdit" runat="server"
Text="Update" OnClick="linkEdit_Click" CausesValidation="false">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
代码背后:
Protected Sub linkEdit_Click(sender As Object, e As EventArgs)
_presenter.Edit(sender)
End Sub
ASP HTML代码,因为您使用的是LinkButton属性,所以更改为'CommandName'而不是OnClick。
<asp:LinkButton ID="linkEdit" runat="server" Text="Update" CommandName="edit" CausesValidation="false">
Codebehind使用此函数来触发Command。
Private Sub grid1_rowEditing(Byval sender as Object, Byval e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles grid1.RowEditing
grid1.EditIndex = e.NewEditIndex
End Sub
Private Sub grid1_RowCommand(byval sender as Object, Byval e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles grid1.RowCommand
if e.CommandName = "edit" Then
'' Do something here
end if
end sub