博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]Oracle分页之三:利用PagerView来实现无刷新GridView
阅读量:6555 次
发布时间:2019-06-24

本文共 3010 字,大约阅读时间需要 10 分钟。

本文转自:

接上面一节,上面还存在问题就是分页控件使用的仍然是服务器端控件,没点一次就要刷新页面一次,也就是向服务器端请求一次。那么用什么方法能够让页面无刷新而进行分页呢?

在这里,我想到了PagerView这套开源控件,有兴趣的朋友可以通过PagerView关键字去搜搜,然后研究下,这个封装的还是挺好的。

                但是,这里遇到一个问题,如何让页面的GridView实现无刷新加载数据呢?这里我不得不提到我以前文章中写道的ICallbackEventhandler接口,这是微软的一个ajax回调接口,然后再配合这输出页面HTML的方式,不就可以实现无刷新GridView分页了吗?

前台代码:

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PagerWithPagerView.aspx.cs" Inherits="PagerWithPagerView" %>                
<%----%>
<%#Eval("R").ToString() %>
<%#Eval("nsrsbm").ToString() %>
<%#Eval("nsr_mc") %>
<%#Eval("djlx_mc")%>
<%#Eval("dj_ztmc")%>
<%#Eval("zclx_mc")%>
<%#Eval("gljg_mc")%>
<%#Eval("zgy_mc")%>
<%#Eval("ssx_mc")%>
编辑

 

 

那么在后台只要先实现ICallbackEventhandler接口,然后获取从前台传送过来的数据,进行处理,最后将html标签元素打到前台即可。

后台代码如下:

 

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;public partial class PagerWithPagerView : System.Web.UI.Page,ICallbackEventHandler{    protected void Page_Load(object sender, EventArgs e)    {        if (!IsPostBack)        {            Bind();        }    }    public static int _pageSize = 11;    public static int _startSize = 1;    public static int totalCount;    public string _str;    //绑定gridview  并将绑定后的gridview对象返回    private GridView Bind()       {        string sqlQuery = "select nsrsbm,nsr_mc,djlx_mc,dj_ztmc,zclx_mc,gljg_mc,zgy_mc,ssx_mc from scott.t_yhs_djxxtz";        DataSet ds = Pagination.PaginationPager(sqlQuery, _pageSize, _startSize, out   totalCount);        GridView1.DataSource = ds.Tables["Table"];        GridView1.DataBind();        return GridView1;    }    public string GetCallbackResult()    {        return _str;  //将html返回到前台    }    public void RaiseCallbackEvent(string eventArgument)    {        if (!string.IsNullOrEmpty(eventArgument))        {            _startSize = Int32.Parse(eventArgument);            Response.ClearContent();  //清除            GridView gv=Bind(); //得到GridView对象            System.Text.StringBuilder sb = new System.Text.StringBuilder();            System.IO.StringWriter sw = new System.IO.StringWriter(sb);            HtmlTextWriter htw = new HtmlTextWriter(sw);            Header.RenderControl(htw);              gv.RenderControl(htw);  //将生成的html元素render出来            _str = sb.ToString();          }    }}

 

 

 

 

代码中已经有了注释,我这里不再详细说明,这里只要知道ICallbackEventhandler接口的使用方法即可。

 

 

转载地址:http://watco.baihongyu.com/

你可能感兴趣的文章
到底有多少内存
查看>>
centos7.3 安装ovirt-engine4.0 版本
查看>>
putty、xshell的密钥认证
查看>>
Jenkins+git+tomcat 自动化持续部署
查看>>
项目log日志打印
查看>>
Openstack的环境的Mitaka部署环境服务,实例(1)
查看>>
常用shell
查看>>
文档的压缩与打包
查看>>
python3 在不同操作系统安装第三方库方法
查看>>
redhat5.8+mfs(提供软件包文档)
查看>>
python编写登录接口
查看>>
MySQL高可用方案之多级复制
查看>>
OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)
查看>>
Python火车票代码
查看>>
Android开发者指南(7) —— App Install Location
查看>>
Trafficserver Cluster模式
查看>>
亚马逊推出 Blox,用于 EC2 容器服务的开源工具集合
查看>>
SSDB 数据库的图形界面管理工具发布了!
查看>>
Linux:在中国没有真正的新闻
查看>>
西部数据(WD)固件级数据恢复案例
查看>>