C#实现输入值后判断是否满足条件并写入值

如界面需要实现输入修正值判断是否满足最小值和最大值范围
若满足则返回OK,不满足则返回NG
在这里插入图片描述
主要代码

        function Onbb(id) {
            var opt = $("#Q_" + id);
            var pTdOpt = opt.parent().siblings("td");
            var AdjustValue = Number(opt.val());
            var MinValue = Number(pTdOpt.eq(7).text());
            var MaxValue = Number(pTdOpt.eq(8).text());
        

            if (opt.val() != "") {
                if (isNaN(opt.val())) {
                    alert("请输入数字!");
                    opt.val("");
                    return false;
                }
            }

            if (AdjustValue < 0) {
                opt.focus();
                    alert("当前修正值不能为负数!!!");
                    opt.val("");
                    return false;
                }
            if (AdjustValue >= MinValue && AdjustValue <= MaxValue) {
                var row_count = $("#grid").data("kendoGrid").dataSource.data().length;

                pTdOpt.eq(6).text("OK")
                for (var i = 0; i < row_count; i++) {
                    var dataGrid = $("#grid").data('kendoGrid');
                    var data = dataGrid._data;
                    data[i].AdjustRes = "OK";
                }
            } else {
                var row_count = $("#grid").data("kendoGrid").dataSource.data().length;
                pTdOpt.eq(6).text("NG")
                for (var i = 0; i < row_count; i++) {
                    var dataGrid = $("#grid").data('kendoGrid');
                    var data = dataGrid._data;
                    data[i].AdjustRes = "NG";
                }
            }
            
        }
@model ESDStandard
@{
    
    
    ViewBag.Menu = "设备治具维修-故障处理";
    ViewBag.Title = "领料";
}

<div class="banner-title" style="width:450px">
    @ViewBag.Menu-->@ViewBag.Title
</div>

@using (Html.BeginForm("RepairESDRew", "Repair"))
{
    
    
    @(Html.Kendo().Grid<EMS.Models.ESDStandard>()
                                                                               .Name("grid")
                                                                               .Columns(columns =>
                                                                               {
    
    
                                                                                   //columns.Bound(c => c.CallRepairNo).Filterable(false).Sortable(false).Width(80);
                                                                                   columns.Bound(c => c.MtNo).Filterable(false).Sortable(false).Width(80);
                                                                                   columns.Bound(c => c.MachineCode).Filterable(false).Sortable(false).Width(50);
                                                                                   columns.Bound(c => c.Operation).Filterable(false).Sortable(false).Width(50);
                                                                                   columns.Bound(c => c.OperationDesc).Filterable(false).Sortable(false).Width(50);
                                                                                   columns.Bound(c => c.Range).Filterable(false).Sortable(false).Width(80);
                                                                                   columns.Bound(c => c.CheckValue).Filterable(false).Sortable(false).Width(50);
                                                                                   //columns.Bound(c => c.ParamDesc).Filterable(false).Sortable(false).Width(50);
                                                                                   columns.Bound(x => x.AdjustValue).ClientTemplate("<input style=\"width:40px;background-color:yellow \" ID=\"Q_#=Id#\" value=\"0\" type =\"textbox\" οnblur=\"Onbb(#=Id#)\"/> ").Sortable(false).Width(60);
                                                                                   columns.Bound(c => c.AdjustRes).Hidden(false).Filterable(false).Sortable(false).Width(40);
                                                                                   columns.Bound(c => c.MinValue).Hidden(false).Filterable(false).Sortable(false).Width(40);
                                                                                   columns.Bound(c => c.MaxValue).Hidden(false).Filterable(false).Sortable(false).Width(40);
                                                                               })
                                                                               .DefaultOptions()
                                                                                           .Filterable(f => f.Enabled(false))
                                                                                           .Events(e => e.DataBound("boundGridMaintainStatus"))
                                                                                           .DataSource(dataSource => dataSource
                                                                                           .Ajax()
                                                                                           .Batch(true)
                                                                                           .Read(read => read.Action("GetRepairESDEdit", Html.ControllerName(), new {
    
     strOrderNumber = Model.CallRepairNo }))
                                                                                           .ServerOperation(true)
                                                                                           .Model(m =>
                                                                                           {
    
    
                                                                                               m.Id(c => c.Id);

                                                                                           })))

    <div class="content-body">
        <table class="table">
            <tbody>
                <tr>
                    <td> </td>
                    <td> </td>
                    <td colspan="3" style="text-align:right;">
                        <button type="button" class="k-button k-primary" style="width: 100px;" onclick="SaveESD()">修正提交</button>
                        &nbsp;
                        <button type="button" class="k-button" onclick="history.back()">返回</button>
                    </td>
                    <td></td>
                </tr>
            </tbody>
        </table>
    </div>
}
<script>
    function boundGridMaintainStatus() {
    
    
        $('th span, td').tooltipOnOverflow();
    }

    $(document).ready(function () {
    
    
        $(".k-pager-wrap.k-grid-pager.k-widget.k-floatwrap").hide();

            $("#grid").kendoTooltip({
    
    
                show: function (e) {
    
    
                    if ($.trim(this.content.text()) != "") {
    
    
                        $('[role="tooltip"]').css("visibility", "visible");
                    }
                },
                hide: function () {
    
    
                    $('[role="tooltip"]').css("visibility", "hidden");
                },
                filter: "td:nth-child(n+3)",
                content: function (e) {
    
    
                    var element = e.target[0];
                    if (element.offsetWidth < element.scrollWidth) {
    
    
                        var text = $(e.target).text();
                        return '<div style="min-width:50px;max-width: 500px;">' + text + '</div>';
                    } else {
    
    
                        $('[role="tooltip"]').css("visibility", "hidden");//解决鼠标一开始放在上面出现空模块
                        return "";
                    }
                }
            }).data("kendoToolTip");
        });

        function Onbb(id) {
    
    
            var opt = $("#Q_" + id);
            var pTdOpt = opt.parent().siblings("td");
            var AdjustValue = Number(opt.val());
            var MinValue = Number(pTdOpt.eq(7).text());
            var MaxValue = Number(pTdOpt.eq(8).text());
        

            if (opt.val() != "") {
    
    
                if (isNaN(opt.val())) {
    
    
                    alert("请输入数字!");
                    opt.val("");
                    return false;
                }
            }

            if (AdjustValue < 0) {
    
    
                opt.focus();
                    alert("当前修正值不能为负数!!!");
                    opt.val("");
                    return false;
                }
            if (AdjustValue >= MinValue && AdjustValue <= MaxValue) {
    
    
                var row_count = $("#grid").data("kendoGrid").dataSource.data().length;

                pTdOpt.eq(6).text("OK")
                for (var i = 0; i < row_count; i++) {
    
    
                    var dataGrid = $("#grid").data('kendoGrid');
                    var data = dataGrid._data;
                    data[i].AdjustRes = "OK";
                }
            } else {
    
    
                var row_count = $("#grid").data("kendoGrid").dataSource.data().length;
                pTdOpt.eq(6).text("NG")
                for (var i = 0; i < row_count; i++) {
    
    
                    var dataGrid = $("#grid").data('kendoGrid');
                    var data = dataGrid._data;
                    data[i].AdjustRes = "NG";
                }
            }
            
        }

        function FormatESDData(_gridId) {
    
    
            var dataGrid = $(_gridId).data('kendoGrid');
            var data = dataGrid._data;
            var row_count = dataGrid.dataSource.data().length;
            var strJson = "{\"item\":[";
            
            for (var i = 0; i < row_count; i++) {
    
    
                var OptQty = $("#Q_" + data[i].id).val();      
                if (OptQty>0) {
    
    
                    strJson = strJson +
                        "{\"MtNo\":\"" + data[i].MtNo + "\"," +
                        "\"MachineCode\":\"" + data[i].MachineCode + "\"," +                     
                        "\"AdjustValue\":\"" + $("#Q_" + data[i].id).val() + "\"," +
                        "\"AdjustRes\":\"" + data[i].AdjustRes + "\"" +
                        "},"
                }
            }
            return strJson.substring(0, strJson.length - 1) + "]}";
    }

          function SaveESD() {
    
    
              var strJsonData = FormatESDData("#grid");       
                    $.ajax({
    
    
                        dataType: "json",
                        type: "post",
                        url: "/Repair/RepairESDSubmit",
                        data: {
    
    
                            strRepairESDJson: strJsonData,
                        },
                        success: function (data, type) {
    
    
                            if (data == "OK") {
    
    
                                alert("修正保存成功!!!");
                                window.location.href = '@Url.Action("RepairESDIndex")';
                            } else {
    
    
                                alert("修正保存失败!!!");
                                return;
                            }
                        },
                        error: function () {
    
    
                            alert("ERROR:界面数据类型不对!");
                        }
                    });
        }
</script>

界面实现代码

控制器

      public ActionResult GetRepairESDEdit([DataSourceRequest] DataSourceRequest request,string strOrderNumber)
        {
            using (var handler = new RepairHandler())
            {
                var list = handler.GetRepairESDEdit(strOrderNumber);
                return Json(list.ToDataSourceResult(request));
            }
        }

        //点检修正记录保存
        public ActionResult RepairESDSubmit(string strRepairESDJson)
        {
            using (var handler = new RepairHandler())
            {            
              return Json(handler.UpdateESD(strRepairESDJson), JsonRequestBehavior.AllowGet);    
            }
        }

方法实现

//取点检修正表中数据EMS_ESD_CHECK
        public ESDStandard GetRepairESDEdit(int Id)
        {
    
    
            var getList = (from x in db.EMS_ESD_CHECK.AsQueryable()
                           where x.ID == Id
                           select new ESDStandard
                           {
    
    
                               Id = (int)x.ID,
                               CallRepairNo = x.CALL_REPAIR_NO,
                               MachineId = x.MACHINE_ID,
                               MachineCode = db.MACHINE.Where(m => m.ID == x.MACHINE_ID).Select(m => m.CUSTODYNO).FirstOrDefault(),
                               MtNo = x.MT_NO,
                               Range = x.STD_RANGE,
                               StdCode = x.STD_CODE,
                               Operation = x.OPERATION,
                               OperationDesc = x.OPERATION,
                               CheckValue = x.CHECK_VALUE,
                           }).FirstOrDefault();
            return getList;
        }

        //取点检记录
        public List<ESDStandard> GetRepairESDEdit(string strOrderNumber)
        {
    
    
            var getList = (from c in db.EMS_ESD_CHECK
                           join s in db.EMS_ESD_STANDARD on c.STD_CODE equals s.STD_CODE 
                           where c.CALL_REPAIR_NO == strOrderNumber
                           select new ESDStandard
                           {
    
    
                               Id = (int)c.ID,
                               CallRepairNo = c.CALL_REPAIR_NO,
                               MachineId = c.MACHINE_ID,
                               MachineCode = db.MACHINE.Where(m => m.ID == c.MACHINE_ID).Select(m => m.CUSTODYNO).FirstOrDefault(),
                               MtNo = c.MT_NO,
                               Range = c.STD_RANGE,
                               StdCode = c.STD_CODE,
                               Operation = c.OPERATION,
                               OperationDesc = c.OPERATION,
                               CheckValue = c.CHECK_VALUE,
                               MaxValue =s.STD_TO,
                               MinValue=s.STD_FROM,
                               ParamDesc=s.STD_DESC,
                           }).OrderByDescending(c => c.Id).ToList();
            return getList;
        }

        /// <summary>
        /// 更新ESD
        /// </summary>
        /// <param name="strJsonBOM"></param>
        /// <returns></returns>
        public string UpdateESD(string strRepairESDJson)
        {
    
    
            try
            {
    
    
                JObject JsonObject = (JObject)JsonConvert.DeserializeObject(strRepairESDJson);
                //---------- 解析 Item  json成员数组
                JObject ItemObject = null;

                for (var i = 0; i < JsonObject["item"].Count(); i++)
                {
    
    
                    ItemObject = (JObject)JsonConvert.DeserializeObject(JsonObject["item"][i].ToString());
                    var EsdModel = GetRepairEsd().Where(x => x.MT_NO == ItemObject["MtNo"].ToString()).SingleOrDefault();
                    {
    
    
                        EsdModel.ADJUST_VALUE = Convert.ToDecimal(ItemObject["AdjustValue"].ToString());
                        EsdModel.ADJUST_RES = ItemObject["AdjustRes"].ToString();
                        EsdModel.ADJUST_BY = (decimal)UserSession.Account.Id;
                        EsdModel.ADJUST_TIME = DateTime.Now;
                        EsdModel.UPDATE_BY= (decimal)UserSession.Account.Id;
                        EsdModel.UPDATE_TIME= DateTime.Now;
                    }
                  db.SaveChanges();
                }
             return "OK";
            }
            catch (Exception ex)
            {
    
    
                return "NG-" + ex.Message;
            }
         }

实现效果如图
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/caoguanghui0804/article/details/112279243