Как я могу удержать кнопку asp: от перезагрузки страницы? - PullRequest
0 голосов
/ 20 февраля 2019

В моем приложении несколько asp:buttons, которые перезагружают страницу при каждом нажатии.Как мне разрешить это поведение, продолжая работать с кнопкой?Помимо странного вида при перезагрузке страницы, у меня есть раздел навигации в стиле вкладок, который по умолчанию возвращается к первой вкладке при каждом нажатии кнопки.Вот пример одной кнопки и кода C #, который идет с ней.

HTML / ASPX

<asp:Button ID="uxRequestFEMAResponseBtnT3" runat="server" Text="Generate Interim Response Email" OnClick="uxRequestFEMAResponseBtnT3_Click" />
&nbsp;<asp:TextBox ID="uxFEMARequestDateTxtBox" runat="server" style="color: red; text-align:center;"></asp:TextBox>

C #

protected void uxRequestFEMAResponseBtnT3_Click(object sender, EventArgs e)
    {
        String today = DateTime.Now.ToString("dd/MM/yyyy");
        uxFEMARequestDateTxtBox.Text = today;
    }

Что я пробовал до сих пор: Я пробовал несколько исправлений, чтобы решить эту проблему.Сначала я думал, что смогу решить эту проблему, обернув весь раздел тела (включая все кнопки) в <asp:UpdatePanel ID="UpdatePanel1" runat="server"> ... '', но это не сработало.Во-вторых, я попытался просто добавить AutoPostBack="False" внутри тега <asp:Button..>, но ничего не изменилось.Затем я изменил все asp: buttons на простой html <input type="button"...> с тем же событием onClick.Это остановило перезагрузку, но функциональность (добавление DateTime в текстовое поле в C #) больше не работала.Я видел несколько возможных решений jQuery, но я не уверен, что это решит и мою проблему.Я довольно новичок в ASP.NET, но кажется, что это обычная проблема, с которой сталкиваются все, кто использует кнопки Web.Controls.UI.Любые предложения относительно того, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Используйте для этого панели обновления ... они не обновят страницу и все равно превысят ваше событие клика

0 голосов
/ 20 февраля 2019

несколько вопросов,

  • Вы добавили диспетчер скриптов и настроили свою кнопку с помощью метода RegisterAsyncPostBackControl при загрузке страницы?
  • Значение AutoPostBack всегда должно быть истинным.В противном случае это не вызовет событие щелчка на сервере.

Вы можете использовать jQuery.Это определенно покроет ваше требование.Но вы должны написать веб-метод вместо события нажатия кнопки.

шаги Jquery

  1. добавление файлов jquery и добавление класса в объявление кнопки

  2. регистрация события нажатия кнопки


    $('.button-class').onClick(function()){
        //call to web method
    });

создание веб-метода на стороне сервера с бизнес-логикой

вызов веб-метода


$.ajax({
        type: 'POST',
        url: 'PageName.aspx/MethodName',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            if (msg.d) {
                //set your values to the text box
                $('.textbox-classname').val(msg.d.returningvalue);
            }
        },
        error: function () {
            alert("Error! Try again...");
        }
    });

...