layui和asp.net mvc如何进行条件查询呢,有大佬能来救救孩子吗,实在是整不会了。
看了问题,建议描述详细一点
<script src="~/Scripts/src/layui.js"></script>
<div class="layui-inline" id="searchKeywordf">
<input type="text" autocomplete="off" id="keyword" placeholder="关键字..." class="layui-input">
</div>
<div class="layui-btn layui-btn-normal" id="search">查询</div>
<div class="layui-btn layui-btn-normal" id="adduser">新增</div>
<div id="userTable" lay-filter="jsTabel"></div>
@Scripts.Render("~/Content/css")
<link href="~/Scripts/src/css/layui.css" rel="stylesheet" />
<script type="text/javascript">
layui.use('table', function () {
var table = layui.table,
$ = layui.$,
layer = layui.layer;
table.render({
elem: '#userTable'
, url: "@Url.Action("GetAjaxUserInfoPageList")"//数据接口
, page: true
, cols: [[
{ field: 'UserName', title: '账户', width: 150, sort: true },
{ field: 'PassWord', title: '密码', width: 150, sort: true }
]]
});
//添加用户信息
$("#adduser").on("click", function (event) {
layer.open({
type: 2,
content: '@Url.Action("UserAddDetail")',
title: "新增用户",
area: ["700px", "450px"],
end: function () { // layui 关闭弹框时的回调函数
$("#search").click();
}
})
});
//查询用户信息
$("#search").on("click", function () {
table.reload("userTable", {
page: { curr: 1 },
where: { Keyword: $("#keyword").val() }
}, 'data');
})
})
</script>
就是我写了一个点击事件,然后我不知道怎样可以让这个点击事件根据条件来对动态数据表格数据进行查找
@耳东59: UserAddDetail的方法要有一个接收Keyword的参数
@MrNice: 就只要接收要判断的那个参数吗,具体是啥操作的呀就是有点不知道下手
@MrNice: UserAddDetail是添加进数据库下面这个是绑定
public ActionResult GetAjaxUserInfoPageList(int page,int limit)
{
using (ManagementDbContext managementDbContext = new ManagementDbContext())
{
var query = managementDbContext.AdminLogin.AsQueryable();
var pageQuery = query.OrderByDescending(a => a.UserName).Skip(limit * (page - 1)).Take(limit).ToList();
var result = new
{
code = 0,
msg = "",
count = query.Count(),
data = pageQuery
};
return Json(result, JsonRequestBehavior.AllowGet);
}
}
@耳东59: GetAjaxUserInfoPageList(int page,int limit,string keyword) 调试一下,看看能不能接收到参数
@MrNice: 能接收到,但是没有效果欸GetAjaxUserInfoPageList?page=1&limit=10&Keyword=ccc
@耳东59: 那你要在下面的方法里写过滤条件啊
@MrNice: 我就是这个过滤条件不知道咋写,第一次接触这个,没搞懂有点
@耳东59: 新手?
managementDbContext.AdminLogin.AsQueryable().Where(a=>a.要过滤的属性.Contains(Keyword));
可能的写法之一,写法有很多,要根据你实际需求来
@MrNice: 是的呀~~~大佬,咋我显示keyword不存在呢,是不是不是我这样操作的
public ActionResult GetAjaxUserInfoPageList(int page, int limit, string keyword)
{
using (ManagementDbContext managementDbContext = new ManagementDbContext())
{
managementDbContext.AdminLogin.AsQueryable().Where(a => a.Contains(Keyword));
var query = managementDbContext.AdminLogin.AsQueryable();
var pageQuery = query.OrderByDescending(a => a.UserName).Skip(limit * (page - 1)).Take(limit).ToList();
var result = new
{
code = 0,
msg = "",
count = query.Count(),
data = pageQuery
};
return Json(result, JsonRequestBehavior.AllowGet);
}
}
@耳东59: 你要保证参数的大小写字母一样
@MrNice: 错误 2 'AdminLogin' does not contain a definition for 'Contains' and the best extension method overload 'Queryable.Contains<string>(IQueryable<string>, string)' requires a receiver of type 'IQueryable<string>' G:\10.09new\Shouzhi.System\Management.web\Areas\UserInfo\Controllers\UserInfoManagerController.cs 25 73 Management.web
直接还报这个错误了欸,这是啥原因呀
解决喽,感谢大佬解惑