修改Layui表格的数据
修改Layui中数据表格的数据,先上layui.table的图要求是修改“开头字母”和“单号格式”,单据名称是不能修改的。单据名称和开头字母都是同一张表,而单号格式是引用另外一张表先创建全局变量并渲染layuivarlayer, layuiTable;varTableLayui;//修改开头字母数组(存放要修改的数据),两个数组的关系是通过索引连接(索引相同),intArray用来存放数据ID,s
修改Layui中数据表格的数据,先上layui.table的图
要求是修改“开头字母”和“单号格式”,单据名称是不能修改的。
单据名称和开头字母都是同一张表,而单号格式是引用另外一张表
- 先创建全局变量并渲染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表格的重载,这里不详细展开
- 获取要修改的数据
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);
})
- 将参数发送到控制器进行保存(保存的方法比较笨,就是先保存开头字母,再保存单号格式)
用$.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;
}}}
修改单号格式与修改开头字母相似,所以留给你们
里面的代码是不完整的,像一些简单的我没有打出来,所以需要你们去完善
更多推荐
所有评论(0)