MVC+EasyUI+三层新闻网站建立 分页查询数据功能(七)

 更新时间:2017年07月14日 10:14:22   作者:刘指导  
这篇文章主要为大家详细介绍了MVC+EasyUI+三层新闻网站建立的第七篇,教大家如何分页查询出数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

MVC新闻网站建立,完成分页查询数据功能。

1、在Model里面建立NewInfo(里面存放的是新闻信息的实体信息)

然后在DAL层中建立NewInfoDal (里面存放对新闻信息的操作)

写入分页查询的代码

/// <summary>
 /// 分页查询
 /// </summary>
 /// <param name="start">分页开始条数</param>
 /// <param name="end">分页结束条数</param>
 /// <returns>返回查询到的list集合</returns>
 public List<NewInfo> GetPageEntityList(int start,int end)
 {
 string sql = "select * from(select row_number()over(order by id)as num,*from T_News)as t where t.num>=@start and t.num<=@end";
 SqlParameter[] pms = { 
   new SqlParameter("@start",SqlDbType.Int),
   new SqlParameter("@end",SqlDbType.Int),
   };
 pms[0].Value = start;
 pms[1].Value = end;
 DataTable dt = SqlHelper.ExcuteDataTable(sql,CommandType.Text,pms);
 List<NewInfo> newList = null;
 if (dt.Rows.Count>0)
 {
 newList = new List<NewInfo>();
 NewInfo newinfo = null;
 foreach (DataRow item in dt.Rows)
 {
  newinfo = new NewInfo();
  LoadEntity(item,newinfo);
  newList.Add(newinfo);
 }
 }
 return newList;
 }
 /// <summary>
 /// 查询出页面条数
 /// </summary>
 /// <returns></returns>
 public int GetRecordCount()
 {
 string sql = "select count(*) from T_News";
 int count = Convert.ToInt32(SqlHelper.ExecuteScalar(sql,CommandType.Text));
 return count;
 }

在BLL层中建立NewInfoServices(里面存放对新闻信息的逻辑处理)

 DAL.NewInfoDal NewInfoDal = new DAL.NewInfoDal();
 /// <summary>
 /// 分页查询数据
 /// </summary>
 /// <param name="pageIndex">当前页码值</param>
 /// <param name="pageSize">一个多少条数据</param>
 /// <returns></returns>
 public List<NewInfo> GetPageEntityList(int pageIndex, int pageSize)
 {
 int start = (pageIndex - 1) * pageSize + 1;
 int end = pageSize * pageIndex;
 return NewInfoDal.GetPageEntityList(start,end);
 }
 /// <summary>
 /// 查询出页面的记录数
 /// </summary>
 /// <returns></returns>
 public int GetRecordCount()
 {
 return NewInfoDal.GetRecordCount();
 }

我们把新闻管理的url指定为/NewInfo/Index

那么就要新建NewInfo控制器  Index视图就是新闻管理页面的主页了。 

新闻管理主页的布局很简单就是一个表格,所以就先在body里面写了一表格

<body>
 <div>
 <table id="tt"></table>
 </div>
</body/>

这里用到的是easyui的框架,所以先引用文件。

然后就是通过写js代码来显示出表格的行和列

 <script type="text/javascript">
 $(function () {
 //初始化表格
 initTable();
});

 //初始化表格
 function initTable() {
 $("#tt").datagrid({
 //指向一个地址,当表格加载完成后自动请求该地址
 //自动向后台发送 rows 当前页多少条数据 page:当前页
 //要求返回的数据json对象 {total:200,rows:[{},{}]}
 url: '/NewInfo/ShowNewsList',
 title: "新闻管理",
 fitColumns: true,
 height: $(window).height()-10,
 idField: 'Id', //后台返回数据中的主键列。一定注意大小写。
 loadMsg: "正在加载新闻信息........",
 pagination: true, //启用分页
 singleSelect: true, //只允许选中一行
 pageSize: 10, //一页默认多少条
 pageNumber: 1, //默认页
 rownumbers: true,//行号
 pageList: [10, 20, 30], //允许一页多少条数据
 queryParams: {}, //异步请求可以额外传递的数据
 columns: [[
 { field: 'ck', checkbox: true, align: 'left', width: 50 }, // 设置cheakbox
 { field: 'Title', title: '标题', width: 120 },
 { field: 'SubDateTime', title: '发布时间', width: 80, formatter: ChangeDateFormat, },
 { field: 'Author', title: '作者', width: 80 },

  {
  field: 'operate', title: '操作', align: 'center', width: $(this).width() * 0.1,
  formatter: function (value, row, index) {
  var str = "";
  str += '<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" name="detail" id="detail" class="easyui-linkbutton" onclick="showDetail('+row.Id+')"></a>';
  str += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
  str += '<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" name="update" id="update" class="easyui-linkbutton" onclick="updateNewInfo(' + row.Id + ')" ></a>';
  str += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
  str += '<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" name="delete" id="delete" class="easyui-linkbutton" onclick="deleteNewInfo(' + row.Id + ')" ></a>';
  return str;
  }
  }

 ]],

 onLoadSuccess: function (data) {
  $("a[name='detail']").linkbutton({ text: '详情', plain: true, iconCls: 'icon-more' });
  $("a[name='update']").linkbutton({ text: '编辑', plain: true, iconCls: 'icon-edit' });
  $("a[name='delete']").linkbutton({ text: '删除', plain: true, iconCls: 'icon-cancel' });
  ////点击详情按钮
  //clickDetail();
 },

 toolbar: [{
  id: 'btnAdd',
  text: '添加',
  iconCls: 'icon-add',
  handler: function () {
  addBtnClick(); //添加新闻
  }
 }],
 });
 }

要完成数据的显示则还需要查询数据库。

根据  url: '/NewInfo/ShowNewsList',  所以需要在NewInfo控制器下建立ShowNewsList方法

 /// <summary>
 /// 分页展示数据
 /// </summary>
 /// <returns></returns>
 public JsonResult ShowNewsList()
 {
 //要求返回的数据json对象 {total:200,rows:[{},{}]}
 int pageSize = int.Parse(Request["rows"]??"10");
 int pageIndex = int.Parse(Request["page"]??"1");
 List<NewInfo> newInfoList= NewInfoBll.GetPageEntityList(pageIndex, pageSize);
 //查询所有数据
 var allNews = NewInfoBll.GetRecordCount();
 //把totle和rows:[{},{}]一起返回
 //先建立一个匿名类
 var dataJson = new { total = allNews, rows = newInfoList };
 var json = Json(dataJson, JsonRequestBehavior.AllowGet);
 return json;
 }



以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • .Net多线程编程(误用点分析)

    .Net多线程编程(误用点分析)

    本文主要介绍了.Net多线程编程中的误用点分析。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • ASP.NET MVC中分部视图的应用方法

    ASP.NET MVC中分部视图的应用方法

    这篇文章主要给大家介绍了关于ASP.NET MVC中分部视图的应用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • asp.net 虚拟主机时常出现MAC验证失败错误之解决方法

    asp.net 虚拟主机时常出现MAC验证失败错误之解决方法

    验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
    2009-05-05
  • 不可忽视的 .NET 应用5大性能问题

    不可忽视的 .NET 应用5大性能问题

    ASP.NET 或是 Windows Forms 容器中,使用 ADO 库与运行在 CLR 交互,而 CLR 运行在操作系统中而该硬件又与其他包含不同技术堆栈的硬件通过网络相连。在你的应用与外部环境之间,。我们还有 API 管理服务以及多级缓存基础构造数量庞杂,都可能影响应用程序的性能!
    2016-05-05
  • Linux上使用Docker部署ASP.NET Core应用程序

    Linux上使用Docker部署ASP.NET Core应用程序

    这篇文章介绍了使用Docker部署ASP.NET Core应用程序的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • asp.net 相关文章实现方法

    asp.net 相关文章实现方法

    大家或许会觉得很惊讶:为什么灵感之源会讨论SQL?或许应该这样说吧:搞业务系统,不跟SQL扯上关系似乎比较难。
    2009-05-05
  • asp.net 预防SQL注入攻击之我见

    asp.net 预防SQL注入攻击之我见

    说起防止SQL注入攻击,感觉很郁闷,这么多年了大家一直在讨论,也一直在争论,可是到了现在似乎还是没有定论。当不知道注入原理的时候会觉得很神奇,怎么就被注入了呢?会觉得很难预防。但是当知道了注入原理之后预防不就是很简单的事情了吗?
    2009-11-11
  • asp.net datalist绑定数据后可以上移下移实现示例

    asp.net datalist绑定数据后可以上移下移实现示例

    这篇文章主要介绍了asp.net datalist绑定数据后可以上移下移的示例代码,需要的朋友可以参考下
    2014-02-02
  • WPF自定义路由事件

    WPF自定义路由事件

    这篇文章介绍了WPF自定义路由事件的实现方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Bat自动解压缩发布asp.net程序

    Bat自动解压缩发布asp.net程序

    这篇文章主要介绍了Bat自动解压缩发布asp.net程序的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12

最新评论