MVC精华之实现AJAX分页和搜索 及 实现HTML分页和搜索

AJAX分页和搜索,一般是两个文件,主文件aspx一般是显示搜索表单,而ascx分部视图中显示列表,一般代码如下:

   <%=Html.TextBox("UserName") %>
    <input type="button" id="search" value="搜索" />
    <div id="List">
        <%Html.RenderPartial("UCList", Model); %>
    </div>

需要对按钮进行触发,JS代码如:

  <script type="text/javascript">
        $(function () {
            $("#search").click(function () {
                var userName = $("#UserName").val();
                $.ajax({
                    type: "post",
                    url: "/TestPager/Index",
                    data: "userName=" + userName,
                    success: function (html) {
                        $('#List').html(html);
                    }
                });

            });
        });
    </script>

ASCX文件可能是这样的:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Entity.PagedList<MvcApplication1.Models.UserBases> >" %>
<table>
    <thead>
        <tr>
            <td>
                姓名
            </td>
            <td>
                更新时间
            </td>
        </tr>
    </thead>
    <tbody>
        <%if (Model != null)
          {
              foreach (var i in Model)
              { %>
        <tr>
            <td>
                <%=i.Name%>
            </td>
            <td>
                <%=i.UpdateDate %>
            </td>
        </tr>
        <%}
          } %>
    </tbody>
    <tfoot>
        <tr>
            <td colspan="2">
                <%=Html.AjaxPager(Model, "List", "Index", "TestPager")%>
            </td>
        </tr>
    </tfoot>
</table>

所对应的controller可能是这样的:

#region AJAX分页和查询
        /// <summary>
        /// AJAX分页与查询测试
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public ActionResult Index(string userName, int? page)
        {
            pp = new Entity.PagingParam(page ?? 1, 3);
            if (!string.IsNullOrEmpty(userName))
                vp.AddItem("userName", userName);

            Entity.PagedList<Models.UserBases> model = GetModel(vp, pp);
            model.AddParameters = new System.Collections.Specialized.NameValueCollection();
            model.AddParameters.Add("userName", userName);
            if (Request.IsAjaxRequest())
                return PartialView("UCList", model);
            else
                return View(model);
        }
        #endregion

 

而HTML分页,一般需要一个ASPX文件就可以了,只不能有两种状态,一个是GET状态,一个是POST提交表单的状态,反回到代码中可能是这样的,如:

#region HTML分页和查询
        public ActionResult HtmlIndex(int? page)
        {
            pp = new Entity.PagingParam(page ?? 1, PAGESIZE);
            if (!string.IsNullOrEmpty(Request.QueryString["UserName"])) //从URL中获取数据
                vp.AddItem("userName", Request.QueryString["UserName"]);
            Entity.PagedList<Models.UserBases> model = GetModel(vp, pp);
            return View(model);
        }
        [HttpPost]
        public ActionResult HtmlIndex(FormCollection form)
        {
            pp = new Entity.PagingParam(Convert.ToInt32(form["page"]), PAGESIZE);
            if (!string.IsNullOrEmpty(form["UserName"]))//从表单中获取数据
                vp.AddItem("userName", form["UserName"]);
            Entity.PagedList<Models.UserBases> model = GetModel(vp, pp);
            model.AddParameters = new System.Collections.Specialized.NameValueCollection();
            model.AddParameters.Add("userName", form["UserName"]);
            return View(model);
        }
        #endregion

 

看完文单后,你是否是对分页及查询有一个清晰的认识了,呵呵!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:MVC精华之实现AJAX分页和搜索 及 实现HTML分页和搜索,如需转载请自行联系原博主。

时间: 2024-12-03 17:10:22

MVC精华之实现AJAX分页和搜索 及 实现HTML分页和搜索的相关文章

MVC+jQuery.Ajax异步实现增删改查和分页_jquery

本文实例为大家分享了MVC+jQuery.Ajax异步实现增删改查和分页的具体代码,供大家参考,具体内容如下 1.Model层代码 using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; usin

利用JQuery方便实现基于Ajax的数据查询、排序和分页功能

ajax|分页|排序|数据        之前很少会用javascript去实现页功能主要怕麻烦,但了解JQuery后这种想法发生了变化:有了这样的脚本组件就可以在编写脚本时方便和HTML隔离出来,这样编写高重用性的脚本就更方便.下面就是介绍在学习JQuery过程中编写的基于Ajax的数据查询.排序和分页功能的复用脚本,只要遵循脚本的某些规则描述HTML把脚本文件引入就可以方便实现以上描述的功能.        先看下实现功能的脚代码: /**应用脚本规则:           引用脚本: JQ

JQuery+Ajax实现数据查询、排序和分页功能_jquery

之前很少会用javascript去实现页功能主要怕麻烦,但了解JQuery后这种想法发生了变化:有了这样的脚本组件就可以在编写脚本时方便和HTML隔离出来,这样编写高重用性的脚本就更方便.下面就是介绍在学习JQuery过程中编写的基于Ajax的数据查询.排序和分页功能的复用脚本,只要遵循脚本的某些规则描述HTML把脚本文件引入就可以方便实现以上描述的功能. 先看下实现功能的代码: /**应用脚本规则: 引用脚本: JQuery脚本和JQuery的form插件脚本 Form的ID: viewfor

Thinkphp搜索时首页分页和搜索页保持条件分页的方法_php实例

本文实例讲述了Thinkphp实现搜索时首页分页和搜索页保持条件分页的方法.分享给大家供大家参考.具体实现方法如下: 在做搜索查询时突然发现在首页用的分页代码在搜索页使用时出现错误,首页分页代码(代码中标注start与end部分为分页代码) 复制代码 代码如下: public function index(){   $res=D('Info');// 实例化Data数据对象   /**********start************/   import('ORG.Util.Page');//

ajax-Spring mvc 3.2下Ajax获取406 (Not Acceptable)

问题描述 Spring mvc 3.2下Ajax获取406 (Not Acceptable) Spring mvc 3.2下Ajax获取406 (Not Acceptable) 求助 大神来帮帮忙 解决方案 @ResponseBody @RequestMapping(value = "/resultMap.do", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public Result

分页技术原理与实现之分页的意义及方法(一)_Mysql

什么是分页技术 分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分,如果在其中没有找到自习自己想要的内容,用户可以通过制定页码或是翻页的方式转换可见内容,直到找到自己想要的内容为止.其实这和我们阅读书籍很类似.   下页显示了两种常见的分页方式: 分页的意义 分页确实有效,但它一定会加大系统的复杂度,但可否不分页呢?如果数据量少的话当然可以.但是对于企业信息系统来说数据量不会限制在一个小范围内.如果不顾一切的Select * from某个表,再将返回的数据一

asp.net利用存储过程和div+css实现分页(类似于博客园首页分页)_实用技巧

首先声明以下几点: 1.也许讲解有点初级,希望高手不要"喷"我,因为我知道并不是每一个人都是高手,我也怕高手们说我装13,小生不才: 2.如有什么不对的地方,还希望大家指出,一定虚心学习: 3.本文属于作者原创,尊重他人劳动成果,转载请注明作者,谢谢. 下面开讲: 首先说下思路,写一个存储过程,我也找了一个存储过程,不过不是我写的,出处:http://www.cnblogs.com/zhongweiv/archive/2011/10/31/JqueryPagination.html 这

一淘搜索负责人鬼脚七:个性化搜索 影响了谁?

个性化搜索,一个看起来很美,实践起来却很坎坷的偏正短语.在这里你可以看到小而美,可以看到大数据,可以看到大众与长尾的碰撞,也可以看到技术赋予商业的力量. 文/天下网商记者 范婷婷 "天猫搜索的结果中已经加入了个性化的因素,不同的买家ID或者不同的cookie,由于以前的购买或者浏览行为不一样,看到的搜索结果也可能不一样.个性化的算法在搜索结果和营销资源等方面的充分应用,目标是让消费者看到和他最相关的商品展现,最终实现千人千面的天猫."这条天猫CEO逍遥子发于8月2日下午的微博,解释了近

Excel表格如何分页打印、自动分页、取消分页等技巧

经常在Excel中制作表格时,我们不可能仅仅只作一个表格,有时可能会在一个工作簿中制作多个表格.但我们又希望将所有的表格分别打印到每一张纸上面,每张纸上面只打印一个表格,那么,我们应该如何实现呢?有许多朋友都是重建新工作簿,再将表格一个一个的剪切到新工作簿中,每个工作簿里面放一个表格,最后再一个个的打印出来.虽说这种方法可以实现,但是操作比较繁琐.其实有更好更简单的方法,利用Excel中的分页功能,在一个工作簿中打印出多个表格,每张纸上面打印一个表格. Excel中如何设置手动分页打印 现在工作