开发工具与关键技术:Visual Studio 与Lambda表达式
作者:黄灿
撰写时间:2019.7.5
根据布尔值多条件查询数据,数据库在类型是Bit类型,只有ture或true,没有为空的情况
html代码:
写一个下拉框,并且赋值上一个value
<div class="form-group form-row">
<label class="control-label mr-2" for="audit">审核:</label>
<select class="form-control form-control-sm mr-3" id="selToAuditNo" name="ToAuditNo">
<option value="1">全部</option>
<option value="2">已审核</option>
<option value="3">未审核</option>
</select>
</div>
Javascript代码:
function conditionSelecPurchase() {
//获取页面数据
var ToAuditNo = $("#selToAuditNo").val();//采购订单审核状态
if (ToAuditNo == 1) {
ToAuditNo = "";
}
if (ToAuditNo == 2) {
ToAuditNo = "true";
}
if (ToAuditNo == 3) {
ToAuditNo = "false";
}
//方法二、方法级渲染的重载
tabReceipts.reload({
url: "/ProcurementAndSales/PurchaseOrder/selectPurchaseOrder",
where: {
ToAuditNo: ToAuditNo,,
},
page: {
curr: 1//重新从第1页开始
}
});
}
在多条件查询的方法中通过ID获取到下拉框的valuer,如果值为1赋值一个空的字符串,值为2赋值ture,值为3赋值为false,以字符串的形式传递到控制器
重载的方法是layui插件的方法
控制器Controller代码:
查询的字段有点多,所以只列举出根据布尔值查询的代码
public ActionResult selectPurchaseOrder(string ToAuditNo)
javascript传递过来的是字符串,所以控制器这边接收也使用string类型接收
查询条件
if (ToAuditNo == "")
{
}
if (ToAuditNo == "true")
{
listResult = listResult.Where(m
=> m.ToAuditNo.Equals(true)).ToList();//查询已审核数据 bool类型
}
if (ToAuditNo == "false")
{
listResult = listResult.Where(m
=> m.ToAuditNo.Equals(false)).ToList();//查询未审核数据 bool类型
}
如果接收到的值为空字符串,就不写条件查询,这样ture和false的数据都会被查询出来,如果接收的字符串为true或false那么就使用Lambda表达式写条件查询的代码,Lambda表达式 运算符=>左边是参数(如果有就写如果没有就不写),右边是表达式或语句
Equals是等于的意思,也可以这样子写ToAuditNo==false,效果是一样的,如果接受的字符串是true就查询出数据库Bit类型字段为true的数据,如果接受的字符串是false就查询出数据库Bit类型字段为false的数据