javascript - Подтвердить обратную передачу Кнопка OnClientClick ASP.NET




button postback (9)

Попробуй это:

function Confirm() {
    var confirm_value = document.createElement("INPUT");
    confirm_value.type = "hidden";
    confirm_value.name = "confirm_value";

        if (confirm("Your asking")) {
            confirm_value.value = "Yes";
            document.forms[0].appendChild(confirm_value);
        }
    else {
        confirm_value.value = "No";
        document.forms[0].appendChild(confirm_value);
    }
}

В функции вызова кнопки:

<asp:Button ID="btnReprocessar" runat="server" Text="Reprocessar" Height="20px" OnClick="btnReprocessar_Click" OnClientClick="Confirm()"/>

В методе вызова класса .cs:

        protected void btnReprocessar_Click(object sender, EventArgs e)
    {
        string confirmValue = Request.Form["confirm_value"];
        if (confirmValue == "Yes")
        {

        }
    }
<asp:Button runat="server" ID="btnUserDelete" Text="Delete" CssClass="GreenLightButton"
                           OnClick="BtnUserDelete_Click"
                           OnClientClick="return UserDeleteConfirmation();" 
 meta:resourcekey="BtnUserDeleteResource1" />

Я пытался:

function UserDeleteConfirmation() {
        if (confirm("Are you sure you want to delete this user?"))
            return true;
        else
            return false;
}

а также

function UserDeleteConfirmation() {
    if (confirm("Are you sure you want to delete this user?")) {
            __doPostBack(btnUserDelete, '');
    }

    return false;
 }

И никто из них не работает.


попробуй это :

<asp:Button runat="server" ID="btnUserDelete" Text="Delete" CssClass="GreenLightButton" 
   onClientClick=" return confirm('Are you sure you want to delete this user?')" 
   OnClick="BtnUserDelete_Click"  meta:resourcekey="BtnUserDeleteResource1"  />

Код выглядит так:

В Aspx:

<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" CausesValidation=true />

в Cs:

protected void Page_Load(object sender, System.EventArgs e)
{
     if (!IsPostBack)
     {
         btnSave.Attributes["Onclick"] = "return confirm('Do you really want to save?')";          
     }
}

protected void btnSave_Click(object sender, EventArgs e){
    Page.Validate();
    if (Page.IsValid)
    {
       //Update the database
         lblMessage.Text = "Saved Successfully";
    }
}

Использование диалогового окна JQuery UI:

СЦЕНАРИЙ:

<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<script>
 $(function () {

            $("#<%=btnUserDelete.ClientID%>").on("click", function (event) {
                event.preventDefault();
                $("#dialog-confirm").dialog({
                    resizable: false,
                    height: 140,
                    modal: true,
                    buttons: {
                        Ok: function () {
                            $(this).dialog("close");
                            __doPostBack($('#<%= btnUserDelete.ClientID %>').attr('name'), '');
                        },
                        Cancel: function () {
                            $(this).dialog("close");
                        }
                    }
                });
            });
 });
</script>

HTML:

<div id="dialog-confirm" style="display: none;" title="Confirm Delete">
    <p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Are you sure you want to delete this user?</p>
</div>

Здесь есть решения, которые будут работать, но я не вижу, чтобы кто-то объяснял, что на самом деле происходит здесь, поэтому, хотя мне 2 года, я объясню это.

Нет ничего «неправильного» в добавляемом javascript onclientclick. Проблема заключается в том, что asp.net добавляет, что он включен в onclick, чтобы запускать ПОСЛЕ любого кода, который вы вставляете туда.

Так, например, этот ASPX:

<asp:Button ID="btnDeny" runat="server" CommandName="Deny" Text="Mark 'Denied'" OnClientClick="return confirm('Are you sure?');" />

превращается в этот HTML при визуализации:

<input name="rgApplicants$ctl00$ctl02$ctl00$btnDeny" id="rgApplicants_ctl00_ctl02_ctl00_btnDeny" 
onclick="return confirm('Are you sure?');__doPostBack('rgApplicants$ctl00$ctl02$ctl00$btnDeny','')" type="button" value="Mark 'Denied'" abp="547">

Если вы внимательно присмотритесь, материал __doPostBack никогда не будет достигнут, потому что «confirm» всегда будет возвращать true / false до достижения __doPostBack.

Вот почему вам нужно подтвердить только возврат false, а не возврат, когда значение истинно. Технически, не имеет значения, вернет ли он true или false, любое возвращение в этом случае могло бы привести к тому, что вызов __doPostBack не будет вызван, но для соглашения я оставил бы его так, чтобы он возвращал false, когда false, и ничего не делает для true ,


Попробуй это:

<asp:Button runat="server" ID="btnDelete" Text="Delete"
   onClientClick="javascript:return confirm('Are you sure you want to delete this user?');" OnClick="BtnDelete_Click" />

Попробуй это:

<asp:Button runat="server" ID="btnUserDelete" Text="Delete" CssClass="GreenLightButton"
                       OnClick="BtnUserDelete_Click"
                       OnClientClick="if ( ! UserDeleteConfirmation()) return false;" 
 meta:resourcekey="BtnUserDeleteResource1" />

Таким образом, «возврат» выполняется только тогда, когда пользователь нажимает «отменить», а не когда он нажимает «ОК».

Кстати, вы можете сократить функцию UserDeleteConfirmation до:

function UserDeleteConfirmation() {
    return confirm("Are you sure you want to delete this user?");
}

Вы можете поместить вышеуказанные ответы в одну строку следующим образом. И вам не нужно писать функцию.

    <asp:Button runat="server" ID="btnUserDelete" Text="Delete" CssClass="GreenLightButton"
         OnClick="BtnUserDelete_Click" meta:resourcekey="BtnUserDeleteResource1"
OnClientClick="if ( !confirm('Are you sure you want to delete this user?')) return false;"  />

Если это внешний вид кнопки, которую вы ищете, в базовом теге привязки HTML, вы можете использовать платформу Twitter Bootstrap для форматирования любой из следующих распространенных ссылок / кнопок HTML-типа, которые будут отображаться в виде кнопки. Обратите внимание на визуальные различия между версиями 2, 3 или 4 структуры:

<a class="btn" href="">Link</a>
<button class="btn" type="submit">Button</button>
<input class="btn" type="button" value="Input">
<input class="btn" type="submit" value="Submit">

Внешний вид бутстрапа (v4) :

Пример загрузки Bootstrap (v3) :

Внешний вид бутстрапа (v2) :





javascript asp.net button postback