维护“在MVC中加载"页面上的复选框的状态 [英] Maintain the state of checkbox on page Load in MVC

查看:73
本文介绍了维护“在MVC中加载"页面上的复选框的状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题与页面加载有关. 我有以下代码:

My issue is related to Page load. I have the following code:

控制器:

public ActionResult Index()
        {
     BD.isEmailON_OFF= db.Email_ON_OFF_T.Select(x=>x.isEmailON_OFF).FirstOrDefault().GetValueOrDefault();
}

[HttpPost]
        public ActionResult CheckEmail(string checkemails)
        {

            //calling Stored Procedure

            if (!string.IsNullOrWhiteSpace(checkemails)|| checkemails=="true" || checkemails=="false")
            {
                var checkemails1 = new SqlParameter("checkemails", checkemails);
                db.Database
                       .ExecuteSqlCommand("EXEC Sp_Email_on_off @checkemails", checkemails1);
            }


            return new JsonResult { };
        }

我有桌子IS_Email_on_OFF_T:

我将isemailonoff列插入为0

I inserted to isemailonoff column as 0

功能:

我打开了电子邮件按钮和复选框.

I have turned on the email button and checkbox.

打开电子邮件----->变为关闭按钮并选中复选框.

turn on email----->becomes turn off button and checkbox checked.

关闭按钮---->变为打开按钮,并且未选中复选框.

turn off button----> becomes turn on button and checkbox unchecked.

直到现在都可以正常工作.

worked correctly till here.

打开电子邮件----->变为关闭按钮并选中复选框.

turn on email----->becomes turn off button and checkbox checked.

页面加载(正在加载页面)

page load(loading the page)

clicking on turn off button and not changing to turn on the button(1st attempt)(ISSUE)

单击关闭按钮(第二个),它会发生变化.

clicking on turn off button(2nd tym) and it changes.

我尝试过的是:

观看次数:

@{
                if (Model.isEmailON_OFF == 0)
                {
                    <input type="button" value="Turn Email on" class="btn btn-success" id="btnturnemailonoff" />
                            <input type="checkbox" id="Chkemailonoff" style="float:right;" />
                }
                else
                {
                    <input type="button" value="Turn Email off" class="btn btn-success" id="btnturnemailonoff" />
                            <input type="checkbox" id="Chkemailonoff" style="float:right;" checked/>
                }
              }

AJAX调用按钮单击:

AJAX call on button click:

<script type="text/javascript">



    $(document).ready(function () {
               $('#btnturnemailonoff').on('click', function () {    


            var checked = !$(this).data('checked');
            var message = checked ? 'Turn Email ON' : 'Turn Email OFF';
            if (confirm("Do you want to " + message + "? ")) {



                $("#Chkemailonoff").prop('checked', checked);
                $(this).val(checked ? 'Turn Email Off' : 'Turn Email on')
                $(this).data('checked', checked);



                debugger;
                var url = '@Url.Action("CheckEmail", "BillingDetails")';
                $.ajax({
                    url: url,
                    type: "POST",
                    data: { checkemails: checked },
                    dataType: "json",
                    // traditional: true,
                    success: function () {
                        alert("ajax request to server succeed");
                    }
                });
            }//end of if

        });
    });





</script>

SP:

ALTER procedure [dbo].[Sp_Email_on_off]
@checkemails varchar(10)
As
Begin
if(@checkemails='false')
Update Email_ON_OFF_T set isEmailON_OFF=0
else
Update Email_ON_OFF_T set isEmailON_OFF=1

End

推荐答案

我对AJAX调用按钮的单击进行了更改,并且对我有用.

I made changes in AJAX call button click and it worked for me.

$(document).ready(function () {
        $('#btnturnemailonoff').on('click', function () {                              
            debugger;
             var checked = $("#Chkemailonoff").prop('checked');
            var message = checked ? 'Turn Email On' : 'Turn Email Off';
            if (confirm("Do you want to " + message + "? ")) {
                $("#Chkemailonoff").prop('checked', !checked);
                $(this).val(message)
                var url = '@Url.Action("CheckEmail", "BillingDetails")';
                $.ajax({
                    url: url,
                    type: "POST",
                    data: { checkemails: !checked },
                    dataType: "json",
                    success: function () {
                        //alert("ajax request to server succeed");
                    }
                });
            }




        });
    });

这篇关于维护“在MVC中加载"页面上的复选框的状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆