Asp.net使用jQuery实现数据绑定与分页

使用jQuery来实现Gridview, Repeater等服务器端数据展示控件的数据绑定和分页。本文的关注重点是数据如何实现数据绑定。

Content

jQuery的强大和可用性使得其迅速的流行起来。微软也发布了一个补丁使得VS支持对jQuery的智能感应。由于Gridview,Repeater等控件的复杂性,使得几乎无法通过javascript在客户端对其进行赋值。但是我们又不想放弃这些控件提供的强大功能和便利性,尤其是我们已经习惯了使用这些控件来展示大量的数据。因此如果能把jQuery和Gridview结合起来使用,那应该是很爽的一件事情。

我最近比较喜欢用Repeater这个控件,所以,这里就用一个Repeater显示查询的结果。

首先在页面上定义好这个控件显示的各个字段:

        <asp:PlaceHolder ID="specialRedeemPlaceHolder" runat="server" Visible="false">
             <table id="specialRedeemInfo">
                <caption>查询结果</caption>
                   <thead>
                    <tr>
                        <th>奖品名称</th>
                        <th>姓名</th>
                        <th>美容顾问编号</th>
                        <th>数量</th>
                        <th>所需积分</th>
                        <th>日期</th>
                        <th>状态</th>
                        <th></th>
                    </tr>
                   </thead>
                   <tbody>
                    <asp:Repeater id="rptSpecialRedeemInfo" runat="server" EnableViewState="false"
                           onitemdatabound="rptSpecialRedeemInfo_ItemDataBound">
                        <ItemTemplate>
                            <tr class="item">
                                <td><%# Eval("PartName") %></td>
                                <td><%# Eval("ConsultantName") %></td>
                                <td><%# Eval("ConsultantID")%></td>
                                <td><%# Eval("Quantity")%></td>
                                <td><%# Eval("PointCost")%></td>
                                <td><%# Eval("InsertedTime")%></td>
                                <td><%# Eval("DisplayStatus")%></td>
                                <td><input id="btnProcess" type="button" runat="server" /></td>
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>
                   </tbody>
                </table>
        </asp:PlaceHolder>
 

因为实现的是AJAX的查询,因此可以设置repeater的 EnableViewState=”false”。 这个placeholder定义的是数据显示的格式,而不是显示在网页上的位置。因此需要定义一个显示查询结果的位置,这里定义一个div

        <div id="queryResult">
        </div>
 

OK, 当客户端处理查询事件时,可以利用jQuery的load方法:

        $("#queryResult").load("SpecialRedeemManagement.aspx #specialRedeemInfo",
                         { Func: "Search", ConsultantID: consultantId}, //各个参数
                           ajaxComplete);   //当查询完成时调用这个JS

服务器端可以通过Request.Params["Func"]获取各个参数。在 处理这个查询事件时,首先

specialRedeemPlaceHolder.Visible = true; //设置placeholder的visible=true

然后再给repeater绑定数据(太简单就不贴代码了)。(onitemdatabound此事件仍然有效)

再把这个palcecontrol写到Response流中去:

StringWriter tw = new StringWriter();
// *** Simple rendering - just write the control to the text writer
// *** works well for single controls without containers
Html32TextWriter writer = new Html32TextWriter(tw);
this.specialRedeemPlaceHolder.RenderControl(writer);
writer.Close();

Response.Write(tw.ToString());
Response.End();
解释一下这句:$("#queryResult").load("SpecialRedeemManagement.aspx #specialRedeemInfo",
 

加上"#specialRedeemInfo”会使jQuery只获取返回的Response中id为specialRedeemInfo的控件那部分。好处就是在一个查询中,如果需要的话,可以返回多个供显示的控件流。

除此之外,还有一点需要做的就是重写一个方法:

public override void VerifyRenderingInServerForm(Control control)
{
    //base.VerifyRenderingInServerForm(control);
}
至于这个方法是做什么的,呵呵,有兴趣的自己去查一下吧

Asp.net使用jQuery实现数据绑定与分页

时间: 2024-10-05 00:17:17

Asp.net使用jQuery实现数据绑定与分页的相关文章

ASP.NET实现弹出框真分页将复选框选择的数据存到数据库中(一)

ASP.NET实现弹出框真分页将复选框选择的数据存到数据库中,这个问题分一下几步走 1.将弹出框真分页后复选框选择的数据保存. 2.将弹出框保存的数据传到父页面上. 3.将数据在父页面上显示. 4.点击保存将信息存入数据库中. 首先来第一步将弹出框真分页后复选框选择的数据保存. 思路很简单就是先真分页,然后在点击下一页的时候扫描这一页所有点击复选框的数据保存到一个变量数组中.下面就是主要代码: ASP代码: <%@ Page Language="C#" AutoEventWire

ASP.NET中利用DataGrid的自定义分页功能

ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页 ASP.Net中的DataGrid有内置分页功能, 但是它的默认的分页方式效率是很低的,特别是在数据量很大的时候,用它内置的分页功能几乎是不可能的事,因为它会把所有的数据从数据库读出来再进行分页, 这种只选取了一小部分而丢掉大部分的方法是不可去取的. 在最进的一个项目中因为一个管理页面要管理的数据量非常大,所以必须分页显示,并且不能用DataGrid的内置分页功能,于是自己实现分页. 下面介绍一下我在项目中用到的分页

ASP.NET Repeater控件实现简单分页

早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pageddatasource(v=vs.110).aspx 想起以前Insus.NET只对Gridview和DataList控件进行自定义分页.<GridView和DataList分页组件与用户控件>http://www.cnblogs.com/insus/archive/2009/03/19/14

第二百零九节,jQuery EasyUI,Pagination(分页)组件

jQuery EasyUI,Pagination(分页)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Pagination(分页)组件的使用方法,这个组件依赖于 LinkButton(按钮)组件.

10分钟学会基于ASP.NET的 JQuery实例 (转)

本文介绍如何在ASP.NET(ASP.NET/AJAX)里使用基于JQuery的AJAX技术.(源代码下载见最后) 在使用JQuery前,请到www.jquery.com下载最新版本的js代码,然后再代码里使用 <script src="_scripts/jQuery-1.2.6.js" type="text/javascript"></script>即可,当然,由于微软已经把JQuery集成到VS里,所以你可以到WWW.ASP.NET/aj

微信开发订阅号(ASP.NET MVC4+jquery mobile+AppHarbor发布)

首先应该去微信公众平台注册一个账号,因为我是用的个人,所以只能注册订阅号,然后需要提供身份证照片,这些大家慢慢折腾.然后在微信管理面板中选择高级功能,进入开发者模式. 在服务器配置中需要提供最重要的url,用来接收微信发过来的消息和回复消息,token这个随便填一个就行了,主要是用来验证消息来源. 如果你是java php开发者,那么你可以选google AppEngin 或者sina app engine 来部署你的应用,但是很不幸,我是.net,这里我们使用国外的AppHarbor,appH

jquery自定义插件实现分页效果

这节介绍如何自定义jquery插件,实现分页效果,话不多说,先看看实现的效果: 分页插件 实现的代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta charset="utf-8"> <title>page t

ASP.NET Repeater绑定数据并实现分页

分类: 显示当前页码Label属性 值ID LabNowPageNumber text    1 ×××××××××××××××××××××××××××××××××××××××××××显示总页码Label属性 值ID LabAllPageNumber text    "" ××××××××××××××××××××××××××××××××××××××××××××××× LinkButton属性  值ID  LnkBtnOnetext  第一页 ××××××××××××××××××××××

jQuery模拟无刷新分页效果

<html> <head> <title>jQuery模拟无刷新分页效果|河北苗木|河北金梆子锅炉</title> <script src="/images/jquery-1.4.2.min.js" type="text/javascript"></script> <style type="text/css"> body { font-size:12px; col