基于JS MessageBox执行OnServerClick是/否选择

时间:2015-10-30 12:53:36

标签: javascript c# jquery asp.net twitter-bootstrap

我在ASP.Net上使用Bootstrap。

我尝试在我的按钮上添加确认信息,以便只有在显示提示消息框后点击时才会执行代码。

<link href="_JS/jquery.modal.css" type="text/css" rel="stylesheet" />
<link href="_JS/jquery.modal.theme-xenon.css" type="text/css" rel="stylesheet" />
<link href="_JS/jquery.modal.theme-atlant.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="_JS/jquery.modal.min.js"></script>

<!--......-->

<a href="#" runat="server" id="confirm" onserverclick="confirm_ServerClick1">Confirm</a>

<!--......-->

<script type="text/javascript">
        $(document).ready(function (e) {
            $('a#confirm').click(function () {
                modal({
                    type: 'confirm',
                    title: 'Confirm',
                    text: 'Are you sure you want to remove the user from the company?',
                    if (result) {
                        //Proceeds to activate event in code behind - confirm_ServerClick1
                    } else {
                        BootstrapDialog.closeAll();
                    }}
                });
            });
        });
</script>

有可能吗?如果是这样,我会感激任何提示。

截至目前,它只是执行忽略JS功能的confirm_ServerClick1事件 - 而不显示任何模态弹出窗口。

1 个答案:

答案 0 :(得分:2)

您需要在JS函数中返回true或false。 False表示停止执行,false表示继续执行服务器。

   $('#confirm').click( function() { your_code_here; return false; // or true. the result from your popup } );

     $(document).ready(function (e) {
            $('a#confirm').click(function () {
                modal({
                    type: 'confirm',
                    title: 'Confirm',
                    text: 'Are you sure you want to remove the user from the company?',
                    if (result) {
//your logic here
                     return true;
                    } else {
                        BootstrapDialog.closeAll(); return false;

                    }}
                });
            });
        });

修改

请参阅以下示例以获取默认的JS确认。 (JS Confirm将阻止执行,直到从对话框中收到结果)。在你的情况下,bootstrap弹出窗口不会阻止执行,你需要根据你从弹出窗口收到的结果从JS调用服务器端事件。 如果结果为true,则调用服务器端方法,如document.getElementById("CliendId").click()或使用__doPostBack

    <a href="#" runat="server" id="confirm" onclick="return confirmEvent();"  onserverclick="confirm_ServerClick1">Confirm</a>


<!--......-->

<script type="text/javascript">

    function confirmEvent()
    {
        if(confirm("Are you sure?"))
        {
            alert("This will execute server side event");
            return true;
        }
        else
        {
            alert("I'm not sure!");
            return false;
        }
    }

</script>