при загрузке изображения при нажатии кнопки с использованием процесса обновления он позволяет нажимать другие кнопки - PullRequest
0 голосов
/ 19 июня 2020

Внутри панели обновления у меня есть 40 кнопок: Button1, Button2, Button3 и т. Д. c

При каждом нажатии кнопки текст будет сохраняться в переменной, как показано ниже:

protected void Button1_Click(object sender, EventArgs e)
    {
        string text1="You clicked button1";
    }

Когда я нажимаю кнопку Button1, запускается ajax gif внутри процесса обновления, но в то же время он позволяет нажимать другие кнопки.

Как это предотвратить?

Есть ли другой способ сделать это, кроме как с помощью процесса обновления?

1 Ответ

1 голос
/ 19 июня 2020

После обсуждения в комментариях, если я правильно вас понял, вы можете использовать OnClientClick для отключения кнопок, когда пользователь нажимает на стороне клиента. После завершения функции щелчка вы можете включить все эти кнопки на стороне сервера.

Клиентская сторона:

<script>
    function DisableButtons() {
        $("#<%=btn1.ClientID %>").attr('disabled', true);
        $("#<%=btn2.ClientID %>").attr('disabled', true);
        //other buttons
    }

</script>

<asp:Button ID="btn1" Text="Button 1" runat="server" OnClick="btn1_Click" OnClientClick="DisableButtons();"  UseSubmitBehavior="false" />
<asp:Button ID="btn2" Text="Button 2" runat="server" OnClick="btn2_Click" OnClientClick="DisableButtons();"  UseSubmitBehavior="false"  />
<%--Other buttons--%>

Обратите внимание, что вам нужно добавить UseSubmitBehavior="false" как хорошо для кнопок.

Сторона сервера:

protected void btn1_Click(object sender, EventArgs e)
{
    //other processes
    SetButtonsEnable();
}

protected void SetButtonsEnable()
{
    btn1.Attributes.Remove("disabled");
    btn2.Attributes.Remove("disabled");
    //other buttons
}
...