Layui数据表格中动态插入行&&插入下拉框

想要在已加载的layui数据表格动态的插入一行,首先要在加载表格的时候设置它的event值。因为我这里是点击序号就添加一行,所以我在序号中设置了它的event值!当然在静态表格当中也是一样的操作,在你想要点击的表头添加lay-event="levels"属性进行,双引号里面的名称可以自定义!
在这里插入图片描述

然后就是加载表格的工具条的点击事件了[Tool(’表格的名称’)],设置一些基础参数。

table.on('tool(tabsizezu)', function (obj) { //注:tool是工具条事件名,

var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
var tr = obj.tr; //获得当前行 tr 的DOM对象
然后就是判断如果layEvent的值是否等于levels(上面设置的event的值),等于就执行里面的代码,相当于设置了levels的点击事件了
if (layEvent === 'levels') {
var tableBack = table.cache["tabsizezu"];
tableBack.push({
ID: "", S: "",
M: "",  L: "",
XL: "",XXL: "",
SQ: "", SB: "",
SJ: "", SS: "",
SY: "", SE: "",
A: "" , B: "",
C: "",
D: ""
}),

table.cahe后面的中括号里面放的是表格的名称,然后就是设置插入行的数据内容了,我这里的ID、S、M、L等等的是每一个表头的值,插入空白行的话像我这样不给里面的表头赋值就行了!

table.reload("tabsizezu", {
	url:"",
	data: tableBack,
})

然后就是重载表格,放入上面设置的内容就行了,因为这里重载了表格,所以会有一个刷新表格的效果。
然后就是插入下拉框的部分,当event==1的时候就插入一个下拉框,因为我这里是点击数据表格里面的单元格后插入的下拉框,所以,采取来插入HTML的内容的方法来添加下拉框!
if (layEvent === ‘1’) { //查看
var Num = $(this).data().key;

$(this).addClass(Num);
$(this).css({ position: "relative" })
$("." + Num + " input").css({ height: "0px", padding: "0px" });
$("." + Num + " div").css({ display: "none" });
$(this).append('')

$("#list").css({ display: "block" });
CreateSelect("list", "/SYTFZ/SelectSize");
//这里只是下拉框数据查询的方法而已

var listVal = $("#list").val();
if (listVal != "---请选择---" && listVal != null) {
list2 += Num + ';';
$(this).text("");
$(this).append('' + listVal + '');
$("." + Num + " input").css({ height: "0px", padding: "0px" });
Result += listVal + " | ";
}                
}

当下拉框选择了数据之后级把里面的下拉框替换成输入框的形式,同样是采取插入HTML的方法,不过在我们再次点击的时候输入框的内容就会影响到下拉框的样式,所以就要加上这一句代码 :
$("." + Num + " input").css({ height: “0px”, padding: “0px” });
就可以避免影响到下拉框的样式了!

你可能感兴趣的:(C#)