《Layui的数据表格的多条件查询》

没错是姗姗. 2019-06-28 08:27:02
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:VS MVC
作者:黄姗姗
年级:18级
撰写日期:2019年6月27日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1、首先第一步写好触发查询的按钮:

2、创建这个查询的点击事件:

3、然后在这个点击事件里面获取需要传递的值,即是需要根据区域、客户类型这些条件来查询的,就把区域、客户类型这些值获取到:

4、由于layui的数据表格已经初始化了:
参数解析:
elem:为表格的ID,
url:请求数据的路径
id:为返回数据中的主键ID,比如我的客户表的客户ID,就可以放在这里
method:为提交的方式,提交的方式有post、get
where:存放参数,即是你需要根据什么条件来查,
cols:就是列的内容

5、点击查询按钮,提交数据,刷新当前表格的数据:
Table.reload()为自动化渲染的重载的意思,
tableResult.realod()的参数解析:
clientID:这个为第四步那里表格初始化的id的值
url :请求数据的路径,因为是操作原来的表,所以url和第四步的url路径要一致
where:就是额外的参数,比如,我要报获取到的客户类型和区域来进行查询,就是这种传递参数的方式,Client:Clinet ,分号前面的Clinet要和控制器的参数名一致,分号后面的Client,就是我获取到客户类型的值
page:页码

6、控制器写获取数据的方法:

7、然后在这个方法里面写查询你需要的表的数据:
public ActionResult selectclient(LayPage laypage, int Client, string Area)
{
//首先第一步先把所有需要的数据进行查询来
var tb = (from tbclinet in mymodel.client
select new client
{
ClientID = tbclinet.ClinetID,
clinetname = tbclinet.name,
clinetTypeID = tbclinet.clientTypeID,
Areaname = tbclinet.Area
}).ToList();
//第二步,开始根据条件筛选,这里判断client是否等于0,如果传过来的client等于0,就不会就去if里面的语句,如果不等于0的,就跳进if的语句里
if (clinet != 0) {
//这里是将tb进行添加where筛选条件,利用表的clientTypeID等于client的条件来查询
tb = tb.where(m => m.clinetTypeID ==client).ToList();
}
这里判断Area是否等于"",如果传过来的client等于"",就不会就去if里面的语句,如果不等于""的,就跳进if的语句里
if (Area != "")
{
//这里是将tb进行添加where筛选条件,利用表的Areaname等于Area的条件来查询
tb = tb.where(m => m.Areaname == Area).ToList();
}
int count = tb.Count();//获取tb的总数
List<Client> listClient = tb.OrderBy(S => S.ClientID)
.Skip(laypage.GetStartIndex()).Take(laypage.limit).ToList<Client>()
LayTable<Client> laydata = new LayTable<Client>();
laydata.count = count;
laydata.data = listClient;
return Json(laydata, JsonRequestBehavior.AllowGet);
}
...全文
1279 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

488

社区成员

发帖
与我相关
我的任务
社区描述
硬件使用 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧