如何根据树节点来查询数据
做过树形图的朋友应该对树形图的结构很了解吧,现在我要介绍一种简单的利用树形图的节点来查询表格里面的数据,主要是利用获取节点ID来进行重载表格里面的数据,其中得利于layui封装好的重载方法,来看一下吧。
例子:
我要实现的效果是当我点击树形图节点的时候就让表格查询该节点里面的数据,那么该如何实现的呢?其实很简单的,来看一下吧!
步骤:1、首先要在点击树节点的时候就给节点一个点击事件;2、获取点击的节点ID;3、通过表格重载的方法进行查询数据。
在jQuery中:
设置树形图的配置参数,设置点击事件。
//树形图的配置参数
var setting = {
callback: {
onClick: zTreeOnClick,//用于捕获节点被点击的事件回调函数
}
};
//获取点击的节点
function zTreeOnClick(e, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"); //获取树形图里面的数据
nodes1 = zTree.getSelectedNodes(),
treeNode = nodes1[0];
//方法级渲染的重载
tabCommodity.reload({
url: "SearchClientAll",
where: {
ID: treeNode.id, //获取树节点的ID
},
page: {
curr: 1 //重新从第 1 页开始
}
});
}
在控制器中:
public ActionResult SearchCommodityall(int ID, LayuiTablePage layuiTablePage)
{
//查询表格数据(这里不重要的我简写了,请莫怪,红色字是重点)
List<commodityVo> listCommodity = (from tbCommodity in myModels.PW_Commodity
join tbCommodityType in myModels.PW_CommodityType on tbCommodity.CommodityTypeID equals tbCommodityType.CommodityTypeID
where tbCommodity.CommodityTypeID == ID
orderby tbCommodity.CommodityID
select new commodityVo{
CommodityID = tbCommodity.CommodityID,
CommodityTypeID = tbCommodityType.CommodityTypeID
}).ToList();
//计算数据总条数
int totalRow = listCommodity.Count();
//分页数据
List<commodityVo> dbCommodity = listCommodity
.Skip(layuiTablePage.GetStartIndex())
.Take(layuiTablePage.limit)
.ToList();
//实例化
LayuiTableData<commodityVo> layuiTableData = new LayuiTableData<commodityVo>
{
count = totalRow,
data = dbCommodity
};
return Json(layuiTableData, JsonRequestBehavior.AllowGet); //将数据返回到页面
}
总结:根据树节点来查询数据主要是利用节点ID进行查询,再利用表格的重载方法就可以了。