之前我发表了一篇MVC无刷新分页的文章,里面用的是MvcPager控件,但是那个受那个控件限制,传值只能用PagedList,各方面都受到了限制,自由度不够高,现在还是做MVC无刷新分页,但是想直接用IQueryable或者IEnumerable传值,并且界面简洁化,可定制性也高点。

  既然还是用IQueryable传值,那么Controller就没什么好说了,就是分页的时候返回一个PartialView而已。现在关键是网页的设计和脚本。先说我想达到的效果吧:

  我想达到的效果就是搜索条件和标题占一行,其中标题靠左,搜索条件靠右,添加商品和分页信息占另一行,其中添加商品按钮靠左,分页信息靠右,代码如下:

  其中样式row是bootstrap的样式,left_head和right_head是我用来让他们两个分别浮动在左右的:

  不过这只是样式问题,都不是重点,重点在局部页面_PageInfo:

<div id="pageInfo">
<div><input id="btnPrevPage" class="btn btn-default" type="button" value="上一页" /></div>
<div><input id="btnNextPage" class="btn btn-default" type="button" value="下一页" /></div>
<div><input id="txtPageIndex" name="pageIndex" type="text" class="form-control" /></div>
<div><input id="btnJump" class="btn btn-default" type="button" value="跳转" /></div>
<div id="pageNum"><span id="spanPageIndex"></span><span>/</span><span id="spanTotalPage"></span></div>
</div>

  可以看到分页控件各节点之间是有一定间距的,并且分页数字是靠下的,这些的样式如下:

#txtPageIndex {
width: 43px;
}
#pageInfo > div {
float: left;
margin-right: 2px;
}
#pageNum {
margin-top: 15px;
}

  样子已经做好了,现在就缺关键的脚本了,点了页面跳转可得跳转页面呀,绑定一下事件:

  点了上一页下一页不就跳转一下页面嘛,调用一下Jump函数就可以了:

  至于说其中的ShowWarn警告框是什么呢,这个请参阅我的另一篇文章jQuery弹出提示信息简洁版

  需要说明的是我的局部刷新分页是这样写的:

  表的局部页面IndexPartial的后面得调用脚本刷新一下页数:

  可以看到其中用到了PageContent分页类,这个类在我的另一篇文章通用EF框架里有介绍,这里就不描述了。其中关键的就是调用的刷新页数方法:

function RefreshPage(pageIndex, totalPage) {
if (totalPage < 2) {
$('#pageInfo').hide();
} else {
if (pageIndex == 1) {
$("#btnPrevPage").hide();
$("#btnNextPage").show();
} else {
$("#btnPrevPage").show();
if (pageIndex == totalPage) {
$("#btnNextPage").hide();
} else {
$("#btnNextPage").show();
}
}
$("#spanPageIndex").text(pageIndex);
$("#spanTotalPage").text(totalPage);
$('#txtPageIndex').val(pageIndex);
$('#pageInfo').show();
}
}

  这里我采用当只有一页时把分页控件隐藏掉,如果当前是第一页就把上一页按钮隐藏,如是是最后一页则把下一页按钮隐藏,这个是个人喜好,大家可以随意修改。。

  至此分页控件就写好了。不过在表页跳转时最好还是提示一下正在加载中吧,要不然可能不知道页面跳转了呢,或者等待太久却不知道还在等待呢。这样的话就需要先放个遮罩层:

<div id="loading">
<img src="/Content/img/Imgloading.gif" alt="加载中..." />
</div>

  一开始是要隐藏遮罩层的:

#loading {
background-color: #000;
width: 100%;
height: 100%;
top:;
position: absolute;
z-index:;
filter: alpha(Opacity=60);
-moz-opacity: 0.7;
opacity: 0.7;
display: none;
} #loading img {
position: absolute;
left: 50%;
top: 50%;
margin: -50px;
}

  div的#loading就是一个遮罩层,其中的loading图在遮罩层的中央显示:

  需要图的直接保存上面那个图吧,这样的话,在form提交post的时候把遮罩层拉出来挡一下,获取到数据后又把他撤走就可以了:

function Loading() {
$("#loading").fadeIn();
}
function RemoveLoading() {
$("#loading").hide();
}
$('#formQuery').on('submit', Loading);

MVC自定义分页(附表跳转页Loading提示)的更多相关文章

  1. MVC自定义分页

    MVC自定义分页 之前我发表了一篇MVC无刷新分页的文章,里面用的是MvcPager控件,但是那个受那个控件限制,传值只能用PagedList,各方面都受到了限制,自由度不够高,现在还是做MVC无刷新 ...

  2. mvc自定义分页(加页数的)(转)

    1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...

  3. Mvc自定义分页控件

    MVC开发分页常常使用第三方控件,生成的分页HTML带有版权申明,虽然免费,但是总有的别扭.于是,某日,楼主闲来蛋疼,折腾了个自定义分页控件: 先来展示下效果图: 1>当分页不超过10页的时候, ...

  4. MVC下分页的自定义分页一种实现

    1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...

  5. GridView自定义分页样式(上一页,下一页,到第几页)

    今天要为网站做一个文章列表,发现GridView的分页样式很难看,于是结合网上的例子,自己做了一个.不是很美观,不过还是很实用的,先看下效果吧,如图(1). 图(1)GridView分页效果 自定义G ...

  6. 设置UCHome注册登陆退出的跳转页自定义

    UCHome 默认注册.登录成功后跳转到 http://www.xxx.com/home/space.php?do=home 退出后会跳转到站点的首页,即 http://www.xxx.com/hom ...

  7. asp.net webform 自定义分页控件

    做web开发一直用到分页控件,自己也动手实现了个,使用用户自定义控件. 翻页后数据加载使用委托,将具体实现放在在使用分页控件的页面进行注册. 有图有真相,给个直观的认识: 自定义分页控件前台代码: & ...

  8. 基于存储过程的MVC开源分页控件--LYB.NET.SPPager

    摘要 现在基于ASP.NET MVC的分页控件我想大家都不陌生了,百度一下一大箩筐.其中有不少精品,陕北吴旗娃杨涛大哥做的分页控件MVCPager(http://www.webdiyer.com/)算 ...

  9. asp.net mvc 自定义pager封装与优化

    asp.net mvc 自定义pager封装与优化 Intro 之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自 ...

随机推荐

  1. 1280*720P和1920*1080P的视频在25帧30帧50帧60帧时的参数

  2. js中substr,substring,slice。截取字符串的区别

    substr(n1,n2) n1:起始位置(可以为负数) n2:截取长度(不可以为0,不可以为负数,可以为空) 当n1为正数时,从字符串的n1下标处截取字符串(起始位置),长度为n2. 当n1为负数时 ...

  3. javascrip中cookie的使用详细分析

    JavaScript中的另一个机制:cookie,则可以达到真正全局变量的要求. cookie是浏览器 提供的一种机制,它将document 对象的cookie属性提供给JavaScript.可以由J ...

  4. Android 笔记 AutoCompleteTextView day8

    用于自动补全内容 适应器可用于显示多行内容 package com.supermario.autocompletedemo; import android.app.Activity; import a ...

  5. sweetAlert

    SweetAlert2是一款功能强大的纯Js模态消息对话框插件.SweetAlert2用于替代浏览器默认的弹出对话框,它提供各种参数和方法,支持嵌入图片,背景,HTML标签等,并提供5种内置的情景类, ...

  6. #英文#品读中国城市个性——上海人的精明&头啖汤

    制定"严格的规则" set the 'hard and fast' rules 担负职责 shoulder responsibility 对...有深刻理解 develop a g ...

  7. 消息中间件MetaQ高性能原因分析-转自阿里中间件

    简介 MetaQ是一款高性能的消息中间件,经过几年的发展,已经非常成熟稳定,历经多年双11的零点峰值压测,表现堪称完美. MetaQ当前最新最稳定的稳本是3.x系统,MetaQ 3.x重新设计和实现, ...

  8. 【监听文件 多线程】使用java--WatchService监听文件 开启多线程copy文件

    有一个小需求: 在PC跟前没有人的时候,迅雷下载文件 至PC磁盘上,并且自动移动文件到U盘上,小主只要在走的时候取走U盘即可. 基于这个需求,有了下面这段代码:[JDK  1.8] package c ...

  9. http tcp udp ip 间的关系

    首先,我自己梳理一下,其实除了应对以后的笔试,还有需要应对的是自己在编程中对于api的选择,我在满足需求时采取哪种方案更好. 首先,我需要了解的是tcp/ip是一个协议组,有三大层: ip 对应于网络 ...

  10. 蜻蜓FM笔试题目,求两个点的最近父节点

    这个博客写的特别好. http://blog.csdn.net/kangroger/article/details/40392925