| 加入收藏| 设为首页| 联系我们

首页 站长学习 站长之家 源码下载 建站素材 书籍教程 常用工具
 您现在的位置: 动力中国 >> 网络编程 >> Ajax教程 >> 文章正文  
 利用JQuery方便实现基于Ajax的数据查询、排序和分页功能
 

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

http://www.domcn.org  文章来源:本站收藏  点击数:

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

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

       先看下实现功能的脚代码:

/**应用脚本规则:

          引用脚本: JQuery脚本和JQuery的form插件脚本

          Form的ID:    viewform

    显示数据的div的ID: listview

     分页按钮HTML属性: pageindex=1

     排序按钮HTML属性: orderfield=employeeid desc;

提效排序字段Input的ID,Name: orderfield

提交分页索引Input的ID,Name: pageindex

**/

function onInitPaging()

{

     $(#listview).find([@orderfield]).each(function(i)

        {

            var ordervalue = $(this).attr(orderfield);

            $(this).click(function()

                {

                    $(#orderfield).val(ordervalue);

                    onSubmitPage();

                }

            );

        }

    );

    $(#listview).find([@pageindex]).each(function(i)

        {

            var piValue = $(this).attr(pageindex);

            $(this).click(function()

                {

                    $(#pageindex).val(piValue);

                    onSubmitPage();

                }

            );

        }

    );

}

function onSubmitPage()

{

    var options = {

        success: function SubmitSuccess(data){

            $(#listview).html(data);

            onInitPaging();

          

        }

    };

    $(#viewform).ajaxSubmit(options);

}

$(document).ready(

    function()

    {

        $(#search).click(function(){

        $(#pageindex).val(0);

        onSubmitPage()

       

        });

      onSubmitPage();

    }

);

约束规则巧用了html的自定义属性,以上代码描述查询,排序和分页的ajax提交处理。在编写HTML时只需要遵循描述的规则即可,你并不需要在编写任何脚本代码;只需要把脚本添加到页面里:
http://www.knowsky.com
    <script src=jquery-latest.js></script>

    <script src=form.js></script>

    <script src=calendar.js></script>

     <script src=calendar-setup.js></script>

    <script src=lang/calendar-en.js></script>

    <script src=pagination.js></script>

    <form id=viewform  method=post action=FrmOrderView.aspx>

    <input id=orderfield name=orderfield type=hidden value= />

    <input id=pageindex name=pageindex type=hidden value =0/>

    <table border=0 cellpadding=0 cellspacing=0 style=width: 100%; height: 100%>

            <tr>

                <td valign=top align=left>

                     <table width=550 cellpadding=0 cellspacing=0>

                        <tr>

                            <td style=width: 63px; height: 17px; background-color: gainsboro;>

                                CompanyName</td>

                            <td style=width: 114px; height: 17px;>

                                <input id=Text1 name=companyname type=text /></td>

                            <td style=width: 63px; height: 17px; background-color: gainsboro;>

                                ShipCity</td>

                            <td style=width: 126px; height: 17px;>

                                <input id=Text2 name=shipcity type=text /></td>

                        </tr>

                        <tr>

                            <td style=width: 63px; height: 14px; background-color: gainsboro;>

                                OrderDate</td>

                            <td style=width: 240px; height: 14px; align=left>

                                <input id=Text3 name=OrderDate_Begin type=text />

                                <input id=button1 DateField=Text3 type=button value=... /></td>

                            <td style=width: 63px; height: 14px; background-color: gainsboro;>

                            </td>

                            <td style=width: 240px; height: 14px; align=left>

                                <input id=Text4 type=text name=OrderDate_End />

                                <input id=button2 DateField=Text4 type=button value=... /></td>

                        </tr>

                        <tr>

                            <td style=height: 50px align=left colspan=4>

                                <input id=search type=button value=Search /></td>

                        </tr>

                    </table>

                </td>

            </tr>

            <tr>

                <td height=99%>

                <div id=listview></div>

                </td>

            </tr>

        </table>

     </form>


数据提供页面:


<%@ Page Language=C# AutoEventWireup=true Inherits=HFSoft.MVC.DataViewContext %>

<%@ Import Namespace=NorthWind.Entities %>

<%

    HFSoft.MVC.IDataViewContext dataview = (HFSoft.MVC.IDataViewContext)this;

 %>

<table width=100% >

   <% if(dataview.PageCount >0){%>

    <tr>

        <td colspan=7 style=height: 20px>

        <a href=# pageindex=0 >首页</a>

        <a href=# pageindex=<% =dataview.PrevPage%>>上一页</a>

        <a href=# pageindex=<% =dataview.NextPage %> >下一页</a>

        <a href=# pageindex=<% =dataview.PageCount-1%>>末页</a>

        当前<%=dataview.PageIndex+1%>页/共<%=dataview.PageCount %>页

        </td>

    </tr>

 

    <%}%>

    <tr>

        <td style=width: 100px; font-weight: bold; background-color: activeborder;>

            <a href=# orderfield=<%=dataview.GetOrderInfo(CompanyName)%> >CustomerName</a></td>

        <td style=width: 100px; font-weight: bold; background-color: activeborder;>

            <a href=# orderfield=<%=dataview.GetOrderInfo(Employees.EmployeeID)%> >EmployeeName</a></td>

        <td style=width: 100px; font-weight: bold; background-color: activeborder;>

            <a href=# orderfield=<%=dataview.GetOrderInfo(OrderDate)%> >OrderDate</a></td>

        <td style=width: 100px; font-weight: bold; background-color: activeborder;>

            <a href=# orderfield=<%=dataview.GetOrderInfo(RequiredDate)%> >RequireDate</a></td>

        <td style=width: 100px; font-weight: bold; background-color: activeborder;>

            ShipAddress</td>

        <td style=width: 100px; font-weight: bold; background-color: activeborder;>

            ShipCity</td>

        <td style=width: 100px; font-weight: bold; background-color: activeborder;>

            SipCountry</td>

    </tr>

    <%foreach(Order_v item in dataview.DataItems)

      { %>

    <tr>

        <td style=width: 100px><%=dataview.ToValue(item.CustomerName)%>

        </td>

        <td style=width: 100px><%=dataview.ToValue(item.EmployeeName)%>

        </td>

        <td style=width: 100px><%=dataview.ToValue(item.OrderDate, {0:d})%>

        </td>

        <td style=width: 100px><%=dataview.ToValue(item.RequiredDate, {0:d})%>

        </td>

        <td style=width: 100px><%=dataview.ToValue(item.ShipAddress)%>

        </td>

        <td style=width: 100px><%=dataview.ToValue(item.ShipCity)%>

        </td>

        <td style=width: 100px><% =dataview.ToValue(item.ShipCountry)%>

        </td>

    </tr>

   

     <% } %>

  

</table>


数据提供页相关Controller代码:


[HFSoft.MVC.FormMapper(~/frmorderview.aspx)]

public void OrderView()

{

    HFSoft.MVC.IDataViewContext viewcontext = (HFSoft.MVC.IDataViewContext)this.FormContext;

    IExpression exp;

    FieldAdapter[] orderby = null;

    OrderSearch search = viewcontext.BindObject<OrderSearch>();

    exp = search.GetExpression();

    if (viewcontext.OrderField != null && viewcontext.OrderField != string.Empty)

    {

        orderby = new FieldAdapter[]{new FieldAdapter(viewcontext.OrderField, null)};

    }

    Region region = new Region(viewcontext.PageIndex * 10, viewcontext.PageIndex * 10+10);

    viewcontext.DataItems = exp.List<Order_v>(region, orderby);

    viewcontext.PageSize = 10;

    viewcontext.RecordCount = exp.CountOf<Order_v>();

}

下载例程代码和脚源码:http://www.cnblogs.com/Files/henryfan/AjaxSearchDataSample.rar


利用JQuery方便实现基于Ajax的数据查询、排序和分页功能
  • 上一篇文章:

  • 下一篇文章:
  •  热门文章
    普通文章 电子邮件改头换面 四公司畅谈未
    普通文章 PC病毒史上最声名狼藉的八大病
    普通文章 Rails系统中的AJAX开发技术简析
    普通文章 基于ASP.NET AJAX框架实现表单
    普通文章 开发ASP.NET AJAX客户端定制行
    普通文章 用JFreeChart对JSP报表进行增强
    普通文章 SQL Server 2005上的CLR和ADO.
    普通文章 SQL Server 2005的XML支持机制
    普通文章 Firefox中标签式浏览技巧大全
    普通文章 Tomcat中的Session和Cookie大揭
     
     推荐文章
    推荐文章 把Google地图嵌入网页 就是这么
    推荐文章 迅雷搜索候选资源出错的解决
    推荐文章 轻松去除迅雷里的各种广告和资
    推荐文章 突破限制 免费领养到QQ空间五级
    推荐文章 Rational统一过程RUP贴近中小软
    推荐文章 构建自己的轻量级XML DOM分析程
    推荐文章 WPS Office 2007技巧:妙用配置
    推荐文章 Excel 2007:求余数函数实用进阶
    推荐文章 浅谈ASP.NET的Postback
    推荐文章 软件开发中项目需求管理简述
     
     相关文章
    没有相关文章
    设为首页 | 加入收藏 | 广告合作 | 联系站长 | 版权申明 |
    动力中国为网友提供免费学习资料,可用资源,如果您认为我们的相关内容侵害到了您的权利请联系管理员
    Copyright © 2006-2008 domcn.org All Rights Reserved.