父表与子表的数据联动

本文介绍了一种在前端框架Layui中实现父子表联动的方法。通过在父表点击事件中获取并传递子表ID,重载子表数据,实现了根据父表选择更新子表显示的功能。详细解析了使用Linq进行数据处理和Session缓存优化查询效率的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如图所示,在点击了上面的父表之后,下面的子表就会根据上面父表的统计数据来查询出单条的详细数据!
在这里插入图片描述
因为父表的数据是根据子表的数据查询出来的,所以在对父表统计的时候可以把查询出来的子表的数据的ID拼接在一起,赋值给父表的某个字段一起返回回页面!

 for (int k = 0; k < list4.Count(); k++)
{
linqes[i].AccessDereID += list4[k].dbAcesDeRe.TemporaryMarID.ToString() + ';';
}

Layui表格监听父表点击事件,获取到拼接的ID的字符串。重载子表,把得到的字符串传过去

layuiTable.on('row(DaySellListStatistics)', function (obj) {
if (obj.data.AccessDereID == null || obj.data.AccessDereID == "") {
FundsNum = null;
}
else
{
FundsNum = obj.data.AccessDereID + ';';
FundsNum = FundsNum.substring(0, FundsNum.length - 2);
}
daySellListdetail.reload({
url: "/StatisticsManagement/AccessStatistics/SelecSmallTable",
where: { FundsNum: FundsNum}
})
})

分割字符串ID,通过ID查询出来数据,添加到一个对象列表list3中,这样list3中的数据就是我们需要的数据的其中一部分。
再通过for循环得到list3中的每一条数据,再通过得到的数据的ID去另外一张表中查询出来其他的我需要的数据,把我需要的放入通过一个实体类来保存我所需要的数据,注意里面实体类里面的字段要与页面中表格的field值对应(MarketVo CommDeRe = new MarketVo())
List dbMarket = new List();

string[] AcesId = FundsNum.Split(';');
var list1 = myModels.B_AccessDeRe.ToList();
foreach (var item in AcesId)
{
var ID = Convert.ToInt32(item);
var list2 = list1.Where(S => S.TemporaryMarID == ID).Single();
list3.Add(list2);
}
for (int i = 0; i < list3.Count(); i++)
{
var DateNum = list3[i].CommDeRelsutID;
        var ListComDeRe = listResult.Where(S => S.CommDeRelsutID == DateNum).Single();
MarketVo CommDeRe = new MarketVo()
{
CommCoding = list3[i].CommCoding.Trim(),
Catelist = ListComDeRe.Catelist.Trim(),
FundsNum = ListComDeRe.FundsNum.Trim(),
Color = ListComDeRe.ColorName.Trim(),
Size = ListComDeRe.Size.Trim(),
UnitName = ListComDeRe.UnitName.Trim(),
};
dbMarket.Add(CommDeRe);
}

把赋完值之后的数据添加到对象列表dbMarket中去!

List<MarketVo> listResult = new List<MarketVo>();
if (Session["listResult"]!=null)
{
listResult = Session["listResult"] as List<MarketVo>;
}
  else
{
listResult = (………查询数据的方法………)
Session["listResult"] = listResult;
}

Session操作,当重复查询的时候可以提高效率,不需要重复去数据库中查询数据!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值