LinkButton, как предотвратить двойной щелчок с «asp: LinkButton»?или отключен "asp: LinkButton" после первого нажатия - PullRequest
3 голосов
/ 06 мая 2019

Я пытаюсь избежать двойного щелчка, то есть первый щелчок может отключить «asp: LinkButton» через функции javascript, все это на странице «aspx».

У меня мало опыта в работе над интерфейсом, если вы можете поддержать меня, я благодарю вас.

Я пытался просто использовать: setAttribute, getElementById, attr.

Я пытался просто использовать: setAttribute, getElementById, attr.

<div class="modal-footer">
  <div class="btn-group" role="group">
    <asp:LinkButton ID="btnBringDataFlow" runat="server" CssClass="btn btn-danger" ToolTip="Cancel"
                    OnClick="btnBringDataFlow_Click" OnClientClick="preventDoubleClick()">Bring Data
    </asp:LinkButton>
    <asp:LinkButton ID="btnCancel" runat="server" CssClass="btn btn-primary" ToolTip="Cancel">Cancel</asp:LinkButton>
  </div>
</div>


<script type="text/javascript">
  function disabledLinkBringDataFlow() {

    document.getElementById('btnBringDataFlow').setAttribute("disabled", "");

    //document.getElementById("btnBringDataFlow").disabled = true;
  }
</script>  

Я надеюсь отключить «asp: LinkButton» после первого щелчка, чтобы избежать двойного выполнения функции

Ответы [ 3 ]

1 голос
/ 06 мая 2019

asp:LinkButton отображает тег привязки.Используйте ключевое слово this для доступа к якору и его свойствам:

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Id" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="btnBringDataFlow" runat="server" CssClass="btn btn-danger" ToolTip="Cancel"
                    OnClientClick="preventDoubleClick(this)">Bring Data
                </asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<script>
    function preventDoubleClick(sender) {
        sender.setAttribute("disabled", "");
    }
</script>

Если вы предпочитаете использовать встроенный код onClienClick="this.setAttribute('disabled', '');"

1 голос
/ 06 мая 2019

Я думаю, что для того, чтобы ваш метод Javascript мог получить элемент по идентификатору, вам нужно добавить атрибут ClientIDMode = "Static" в элемент управления LinkButton. По умолчанию серверный элемент управления добавляет некоторый текст к значению идентификатора элемента управления.

<asp:LinkButton ClientIDMode="Static" ID="btnBringDataFlow" runat="server" CssClass="btn btn-danger" ToolTip="Cancel" OnClick="btnBringDataFlow_Click" OnClientClick="preventDoubleClick()">Bring Data</asp:LinkButton>

Если вам нужна дополнительная информация о свойстве ClientIDMode, см .: ClientIDMode

0 голосов
/ 06 мая 2019

Спасибо всем

Мое решение было следующим:

  <script>
        function preventDoubleClick() {
             $("#" + '<%= btnBringDataFlow.ClientID %>').addClass("disabled");
                $("#" + '<%= btnBringDataFlow.ClientID %>').attr("disabled", "disabled");
        }
    </script> 
<asp:LinkButton ID="btnBringDataFlow" runat="server" CssClass="btn btn-danger" ToolTip="Cancel" OnClick="btnBringDataFlow_Click" OnClientClick="preventDoubleClick()" >Bring Data</asp:LinkButton>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...