修改Layui中数据表格的数据,先上layui.table的图

 

要求是修改“开头字母”和“单号格式”,单据名称是不能修改的。

单据名称和开头字母都是同一张表,而单号格式是引用另外一张表

  1. 先创建全局变量并渲染layui

var layer, layuiTable;

var TableLayui;

//修改开头字母数组存放要修改的数据),两个数组的关系是通过索引连接(索引相同),intArray用来存放数据ID,stringArray用来存放修改后的数据

var intArray = [];var StringArray = [];

//修改单号格式数组存放要修改的数据),跟上面相同原理

var intFrontID = [];var intID = [];

而layui表格则是用layui的自定义列模板templet来定义‘单据名称’‘开头字母’‘单号格式’,也就是封装3个函数

 

2.封装上面3个函数并重载layui

 

 

单号名称和开头字母写法基本相同,但‘单号名称’是禁用的,所以加多了一个属性‘disabled’,主要是单号格式是下拉框,要注意。

声明4个变量,默认选中数据库返回的数据(selected = "selected" 默认框

BrandID 是这条数据使用了哪一个单号格式

ID则是这条数据在数据库的唯一身份

 

 

 

注意返回的Select与layui的下拉框有冲突,layui已启用了(display:none),

所以要写上CSS样式

.layui-form input[type=checkbox], .layui-form input[type=radio], .layui-form select

{display:block;}

重载layui表格,可以去参考layui表格的重载,这里不详细展开

  1. 获取要修改的数据

Layui表格有一个监听行点击事件table.on('row(test)', function(obj){})

$("input").change(function () {

var ID = $(this).attr("name");

     //修改操作

     if (intArray.length > 0) { //当数组长度大于0,就要考虑数据是否重复修改

     for (var item in intArray) {

     //重复修改  如果ID相同就要把另外一个数组对应索引的数据进行更换

     if (intArray[item] == ID) {

     StringArray[item] = VoucherFront;

     return;

     }}}

     //第一次修改

     intArray.push(ID);

     StringArray.push(VoucherFront);

     })

      单号格式的修改也是相同原理  

$("select").change(function () {

var FrontID = $(this).val();

var ID = $(this).attr("name");

//修改操作

if (intID.length > 0) {

for (var item in intID) {

     //重复修改

     if (intID[item] == ID) {

     intFrontID[item] = FrontID;

     return;

     }}}

     //第一次修改

     intID.push(ID);

     intFrontID.push(FrontID);

     })    

  1. 将参数发送到控制器进行保存(保存的方法比较笨,就是先保存开头字母,再保存单号格式)

用$.POST来发送请求(你们也可以根据自己的喜好来)

控制器接收参数,声明几个数组来接收

 

//先修改开头字母

if (intXiugai!=null&&strXiugai!=null){

for (int i = 0; i < intXiugai.Length; i++){

     //ling不支持数组,所以要提前把数据拿出来

         var ID = intXiugai[i];

         var Vou = strXiugai[i];

         SYS_NumberSet XiuData = myModels.SYS_NumberSet.Single(m => m.ID == ID);

         XiuData.VoucherFront = strXiugai[i];

         int count = myModels.SYS_NumberSet.Count(m => m.ID != ID && m.VoucherFront == Vou);

         if (count == 0){

          myModels.Entry(XiuData).State = System.Data.Entity.EntityState.Modified;

             if (myModels.SaveChanges() > 0){

              Yes += 1;}  //保存成功+1

             else{

                 No += 1;  //保存失败+1

             }}

         else{

            No += 1;

         }}}

修改单号格式与修改开头字母相似,所以留给你们

里面的代码是不完整的,像一些简单的我没有打出来,所以需要你们去完善

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐