网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Ajax
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.在虚拟主机上部署ASP.NET AJAX 1.
.AJAX入门之深入理解JavaScript中.
.XMLHTTPRequest的属性和方法简介.
.ASP.NET AJAX无刷新验证用户名.
.ASP.NET AJAX RC Tip:页面中无U.
.DWR让AJAX如此简单.
.基于ASP.NET AJAX的WebPart开发与.
.基于PHP和AJAX创建RSS聚合器.
.[四天学会ajax]学习ajax教程第一.
.Ajax:拥抱JSON,让XML走开.
.使用AJAX技术打造博客无刷新搜索.
.关天asp.net ajax beta中在updat.
.利用Asp.net Ajax异步获取xml文档.
.asp.net ajax 和 asp.net 2.0中的.
.如何在ASP.Net Ajax中调用WebSer.
.Ajax程序设计入门.
.基于css样式绑定的样式驱动式AJA.
.ajax的server部分(php版).
.XMLHTTP对象封装技术.
.Ajax简单客户登陆验证 .

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

发表日期:2007-1-28


       之前很少会用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时只需要遵循描述的规则即可,你并不需要在编写任何脚本代码;只需要把脚本添加到页面里:

    <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

上一篇:网页数据的实时刷新 人气:6707
下一篇:利用MS AJAX 扩展服务器端控件 人气:5423
浏览全部Ajax的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐