Кнопка Link не отвечает после первого нажатия - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть кнопка ссылки, которая отлично работает только один раз, второй щелчок не отвечает в Chrome, но работает в Internet Explorer.Это происходит только в моей производственной среде, но dev работает нормально.

Во время отладки я могу сказать, что не достигает моего linkEdit_Click Sub.

Я пытался с EnableViewState="false", и это не такработа.

Я изменил способ вызова linkEdit_Click, используя 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

1 Ответ

0 голосов
/ 11 апреля 2019

ASP HTML-код, измените на «CommandName» вместо OnClick, поскольку вы используете свойство LinkButton.

<asp:LinkButton ID="linkEdit" runat="server" Text="Update" CommandName="edit" CausesValidation="false">

Codebehind использует эту функцию для запуска команды.

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
...