如何在layui中选中多条数据重载到另一张表格中呢?
看一下效果图,再来讲一下步骤:
我选中上图的三条数据,然后让数据重载到另一张表格里面
上图是回填对应选中的数据,这是怎么实现的呢?请看下面。
主要是应用了表格的重载的知识,还需要将选中数据的ID在页面进行拼接再到控制器中分割,然后通过查询获取选中的数据。
在页面的代码:
//确定商品按钮
function selectCom() {
//获取行数据
var checkStatus = layuiTable.checkStatus('tabCommodity');
//判断是否选中行
if (checkStatus.data.length > 0) {
var commodityID = "";
for (var i = 0; i < checkStatus.data.length; i++) {
//将获取到的ID用逗号进行拼接
commodityID += checkStatus.data[i].CommodityID + ",";
}
//去掉最后的一个“,”
commodityID = commodityID.substring(0, commodityID.length - 1);
//表格数据重载(需要重载的表格)
tabInsertInventCheck.reload({
url: "selectInsertInventCheckAll",
where: {
CommodityIDs: commodityID,
}
});
}
else{
layer.alert("请选择商品!", { icon: 0, title: "提示", skin: "layui-layer-molv" });
}
}
在控制器:
public ActionResult selectInsertInventCheckAll(string CommodityIDs,int WarehouseID)
{
//对拼接好的id进行分割
string[] commodityIDs = CommodityIDs.Split(','); //1,2 {"1","2",""}
//用linq查询数据(此处简写数据)
var varLinq = from tbCommodity in myModels.PW_Commodity
select new commodityVo{
CommodityID = tbCommodity.CommodityID,
};
//用lambda表达式筛选出需要的数据
varLinq = varLinq.Where(m => commodityIDs.Contains(m.CommodityID.ToString()));
//将获得的数据转换为表格格式
List<commodityVo> list = varLinq.ToList();
//实例化
LayuiTableData<commodityVo> layuiTableData = new LayuiTableData<commodityVo>
{
data = list
};
return Json(layuiTableData, JsonRequestBehavior.AllowGet);
}
layui表格可以重载的功能帮上了大忙,所以显得比较简单。