用Js实现页面按名字搜索功能

来源:互联网 发布:农村金融去哪找数据 编辑:程序博客网 时间:2024/06/07 18:08
  <div id="indexTable">
            

 </div>

在视图中可以创建这样一个空的标签


JS代码:

 function search() {
        var status = $("#status").val();
        var name = $("#name").val();
        $.post("控制器的Url", {
            name: name,
            status: status
        },
            function (data) {
                $("#indexTable").empty();
                $("#indexTable").append(data);
            }, 'html');
    };


获取视图中输入的名字的信息,并发出POST请求,将收到的信息填入<div>层中

$(function () {

    search();
    })

在加载页面之前也加载一遍数据,防止在未搜索的时候没有任何数据


控制器代码:

  public ActionResult LoadIndexTable(int pageIndex = 1)
        {
            int sum = 0;
            int total = 0;
            StringBuilder sb = new StringBuilder();
            sb.Append("../CampaignManage/LoadIndexTable?s=b");


            #region 数据处理




            //活动名称
            var name = Request.Params["name"];
            if (!string.IsNullOrEmpty(name))
            {
                sb.Append("&name=" + name);
            }
            else
            {
                name = "";
            }
            //状态
            var status = Request.Params["status"];
            if (!string.IsNullOrEmpty(status))
            {
                sb.Append("&status=" + status);
            }
            else
            {
                status = "0";
            }


            #endregion


            var table = new CampaignInfoMan().GetListByPage(name, out sum, out total,
                pageIndex);


            ViewBag.table = table;


            TempData["PageModel"] = new PagedViewModel()
            {
                PageIndex = pageIndex,
                PageCount = sum,
                IsFirstPage = pageIndex == 1,
                IsLastPage = pageIndex == sum,
                RequestUrl = sb.ToString(),
                PageSum = total
            };
            return PartialView("IndexTable");
        }



将数据从数据库中取出,放到一个IndexTable的分布视图中


public List<CampaignInfo> GetListByPage(string name, out int sum, out int totalCount, int pageIndex, int isComplete = 0, int pageSize = 10)
   {
       var t =
           db.CampaignInfos.Where(
               x =>
                   x.DataStatus == PublicEnumList.DataStatus.正常 && 
                        (name == "" || x.Name.Contains(name)) &&
                   (isComplete == 0 || (x.StartTime != null && x.EndTime != null && x.SourceIds != "")));


            totalCount = t.Count();
            sum = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1;


            return t.OrderByDescending(c => c.Id).Take(pageSize * pageIndex).Skip(pageSize * (pageIndex - 1)).ToList();
        }
}


业务逻辑层代码:

public List<CampaignInfo> GetListByPage(string name, out int sum, out int totalCount, int pageIndex, int isComplete = 0, int pageSize = 10)
   {
       var t =
           db.CampaignInfos.Where(
               x =>
                   x.DataStatus == PublicEnumList.DataStatus.正常 && 
                        (name == "" || x.Name.Contains(name)) &&
                   (isComplete == 0 || (x.StartTime != null && x.EndTime != null && x.SourceIds != "")));


            totalCount = t.Count();
            sum = totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1;


            return t.OrderByDescending(c => c.Id).Take(pageSize * pageIndex).Skip(pageSize * (pageIndex - 1)).ToList();
        }
}

将数据按名字提取出来

原创粉丝点击