programing

클라이언트에서 포스트백 확인클릭 버튼 ASP.NET

newstyles 2023. 10. 21. 10:04

클라이언트에서 포스트백 확인클릭 버튼 ASP.NET

<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"
                       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?");
}

여기에 효과가 있는 해결책이 있지만, 여기서 실제로 일어나고 있는 일을 설명하는 사람이 보이지 않기 때문에, 비록 이것이 2살이지만 설명하겠습니다.

추가하는 onclient click javascript에 "잘못된" 것이 없습니다.문제는 asp.net 에서 사용자가 입력하는 코드가 무엇이든 실행되도록 온클릭 방식으로 추가하고 있다는 것입니다.

예를 들어 이 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에 도달하기 전에 "확인"이 항상 true/false로 반환되기 때문에 __doPostBack 항목에 도달하지 않습니다.

이 때문에 값이 참일 때는 confirm이 false만 반환하고 반환하지 않아야 합니다.엄밀히 말하면 true인지 false인지는 중요하지 않습니다. 이 경우 반환은 __doPostBack이 호출되는 것을 방지하는 효과가 있지만, 관례상 false일 때 false로 반환되고 true에 대해 아무것도 수행하지 않도록 합니다.

위의 답들을 이렇게 한 줄에 넣으시면 됩니다.그리고 함수를 쓸 필요는 없습니다.

    <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;"  />

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>

시도해 보십시오.

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

C:

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";
    }
}

시도해 보십시오.OnClientClick="return confirm('Are you sure ?');" 또한 설정:CausesValidation="False"

시도해 보기:

<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에 내장된 것을 활용합니다.NET 유효성 확인 자바스크립트.

<script type="text/javascript">
    function validateAndConfirm() {
        Page_ClientValidate("GroupName");  //'GroupName' is the ValidationGroup
        if (Page_IsValid) {
            return confirm("Are you sure?");
        }
        return false;
    }
</script>

<asp:TextBox ID="IntegerTextBox" runat="server" Width="100px" MaxLength="6" />
<asp:RequiredFieldValidator ID="reqIntegerTextBox" runat="server" ErrorMessage="Required"
    ValidationGroup="GroupName"  ControlToValidate="IntegerTextBox" />
<asp:RangeValidator ID="rangeTextBox" runat="server" ErrorMessage="Invalid"
    ValidationGroup="GroupName" Type="Integer" ControlToValidate="IntegerTextBox" />
<asp:Button ID="SubmitButton" runat="server" Text="Submit"  ValidationGroup="GroupName"
    OnClick="SubmitButton_OnClick" OnClientClick="return validateAndConfirm();" />

출처: ASP를 사용한 클라이언트검증.자바스크립트에서 Net Validator 컨트롤

시도해 보기:

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 confirm('Are you sure you want to delete this user?');" meta:resourcekey="BtnUserDeleteResource1" />
                       

언급URL : https://stackoverflow.com/questions/14058116/confirm-postback-onclientclick-button-asp-net