`
sony-soft
  • 浏览: 1105325 次
文章分类
社区版块
存档分类
最新评论

学习EXT第五日--Grid组件的简易分页

 
阅读更多

关于grid的分页方式我个人理解有两种,我只针对对数据库表或视图的操作思路做一些讲解。

第一种是通过json类的调用,使查询出来的数据格式化,然后传回grid所在页面。在这种方法下,需要.net framework 2.0以上框架和一个json类的支持,当然此方法操作数据表最方便。

第二种则是通过拼接字符串,就可以达到效果。这种方法只需要.net framework1.1框架以上支持就可以了。

下面针对这两种方法做一个讲解。

方法一:此方法还是转载网上流传的PHP的操作。

Gird数据

Grid的分页必须依靠服务端(Server Side)来划分好每一页的数据才可以完成。

本例中的服务端语言是PHP,数据库是MySQL,用来导出一些随机的数据。下列脚本的作用是,获取我们想要的数据,同时这些数据是已分好页的数据。分页的参数是由Page Toolbar传入的变量limit和start所决定的。

$link=mysql_pconnect("test-db.vinylfox.com","test","testuser")
or
die("Couldnotconnect");
mysql_select_db("test")ordie("Couldnotselectdatabase");

$sql_count="SELECTid,name,title,hire_date,activeFROMrandom_employee_data";
$sql=$sql_count."LIMIT".$_GET['start'].",".$_GET['limit'];

$rs_count=mysql_query($sql_count);

$rows=mysql_num_rows($rs_count);

$rs=mysql_query($sql);

while($obj=mysql_fetch_object($rs))
{
$arr[]=$obj;
}

Echo$_GET['callback'].'({"total":"'.$rows.'","results":'.json_encode($arr).'})';

由于每个后台开发的环境都不尽相同,所以这里的服务端代码就不细究了。

怎么做一个分页的Grid

本例采用的是ScriptTagProxy,原因是 范例代码 和 服务端代码 不是在同一个服务器上(译注:即“跨域”),而大多数的情况是,在同一个服务器上得到数据,直接用HttpProxy就可以了。

使用DataStore与平时唯一不同的地方,便是需要设置totalProerty属性。本例中,我们从服务端的脚本计算出“total”这个值,告诉DataStore总共有多少个记录,这里指的是所有的记录数。

vards=newExt.data.Store({

proxy:
newExt.data.ScriptTagProxy({
url:
'http://www.vinylfox.com/yui-ext/examples/grid-paging/grid-paging-data.php'
}),

reader:
newExt.data.JsonReader({
root:
'results',
totalProperty:
'total',
id:
'id'
},[
{name:
'employee_name',mapping:'name'},
{name:
'job_title',mapping:'title'},
{name:
'hire_date',mapping:'hire_date',type:'date',dateFormat:'m-d-Y'},
{name:
'is_active',mapping:'active'}
])

});

分页栏Toolbar

这里加入一个分页栏到Grid的面板中,--差不多完成喽。

vargridFoot=grid.getView().getFooterPanel(true);

varpaging=newExt.PagingToolbar(gridFoot,ds,{
pageSize:
25,
displayInfo:
true,
displayMsg:
'Displayingresults{0}-{1}of{2}',
emptyMsg:
"Noresultstodisplay"
});

最后传入startlimit参数以初始化数据。

ds.load({params:{start:0,limit:25}});

花时间较多的地方是,在后台如何生成数据,以配合Grid的运作,一旦这些工作OK后,分页Grid再不是一件难事了。

如果是用asp.net+sql server 2000 大家则需要通过存储过程来进行对数据表分页的操作。

方法二:

首先来看一下在页面初始化grid的操作:

前台JS:

Ext.onReady(function()...{
varmyData=[
[
'Apple',29.89,0.24,0.81,'9/112:00am'],
[
'Ext',83.81,0.28,0.34,'9/1212:00am'],
[
'Google',71.72,0.02,0.03,'10/112:00am'],
[
'Microsoft',52.55,0.01,0.02,'7/412:00am'],
[
'Yahoo!',29.01,0.42,1.47,'5/2212:00am']
];

vards=newExt.data.Store(...{
proxy:
newExt.data.MemoryProxy(myData),
reader:
newExt.data.ArrayReader(...{},[
...{name:'company'},
...{name:'price',type:'float'},
...{name:'change',type:'float'},
...{name:'pctChange',type:'float'},
...{name:'lastChange',type:'date',dateFormat:'n/jh:ia'}
])
}
);
ds.load();

varcolModel=newExt.grid.ColumnModel([
...{id:"company",header:"Company",width:120,sortable:true,dataIndex:'company'},
...{header:"Price",width:90,sortable:true,dataIndex:'price'},
...{header:"Change",width:90,sortable:true,dataIndex:'change'},
...{header:"%Change",width:90,sortable:true,dataIndex:'pctChange'},
...{header:"LastUpdated",width:120,sortable:true,
renderer:Ext.util.Format.dateRenderer(
'm/d/Y'),dataIndex:'lastChange'}

]);

vargrid=newExt.grid.GridPanel(...{
el:
'grid-example',
ds:ds,
cm:colModel,
autoExpandColumn:
'company',
height:
350,
width:
600,
title:
'ArrayGrid'
}
);
grid.render();
grid.getSelectionModel().selectFirstRow();
}
);

前台HTML:

<divid="grid-example"></div>

大家可以看到,在js里面,

varmyData=[
[
'Apple',29.89,0.24,0.81,'9/112:00am'],
[
'Ext',83.81,0.28,0.34,'9/1212:00am'],
[
'Google',71.72,0.02,0.03,'10/112:00am'],
[
'Microsoft',52.55,0.01,0.02,'7/412:00am'],
[
'Yahoo!',29.01,0.42,1.47,'5/2212:00am']
];

这里的代码则是对数据的加载。所以可以定义一个全局的变量,在这里我们使用Literal

在前台中加入代码

<scriptlanguage="javascript">
<asp:LiteralRunat="server"ID="LiteralScript"></asp:Literal>
</script>

同时在后台加入

protectedSystem.Web.UI.WebControls.LiteralLiteralScript;

此时在后台,就可以把查询出来的数据,通过

StringBuilderInitScript=newStringBuilder();
InitScript.Append(
"从数据表查询出来并格式化后的字符串");
.......
LiteralScript.Text
+=InitScript.ToString();

这种方式来对myData重新赋值。

具体方式是替换myData中的

['Apple',29.89,0.24,0.81,'9/1 12:00am'],
['Ext',83.81,0.28,0.34,'9/12 12:00am'],
['Google',71.72,0.02,0.03,'10/1 12:00am'],
['Microsoft',52.55,0.01,0.02,'7/4 12:00am'],
['Yahoo!',29.01,0.42,1.47,'5/22 12:00am']

通过参数start和limit来进行分页的操作了。

在前台加入代码:ds.load({params:{start:0,limit:10}});

分享到:
评论

相关推荐

    ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。

    ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,...

    ext-2.0 ext-2.0 ext-2.0 ext-2.0 ext-2.0

    ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0

    ExtJS笔记---Grid实现后台分页

    在IT行业中,ExtJS是一个广泛使用的JavaScript库,用于构建富客户端的Web应用程序。它提供了丰富的组件库,包括数据...在阅读这篇博客时,可以参照给出的"extgrid"文件,查看具体的代码实现,以便更好地理解和学习。

    Ext3-Js-Ajax框架-分页标签-自动排序-文件上传

    Ext3-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动...

    ext--grid--demo

    "ext--grid--demo"可能是一个示例项目,展示了如何在Ext JS环境中使用数据网格功能。 在Ext JS中,Grid是用于显示和操作表格数据的核心组件。它支持多种功能,如排序、分页、过滤、编辑等,使得数据管理变得简单。...

    Ext扩展控件-------可以通过下拉列表框选择每页的分页条数

    通过以上讲解,我们可以了解到,"Ext扩展控件-------可以通过下拉列表框选择每页的分页条数"是一个增强EXT Grid分页功能的实用工具,它提升了用户体验,让数据展示更加灵活,同时也对开发者提出了更高的定制化要求。...

    openwrt-x86-64-generic-ext4-combined-efi.img

    openwrt-x86-64-generic-ext4-combined-efi.img openwrt-x86-64-generic-ext4-combined-efi.img

    ext-ux-grid-gridviewmenuplugin

    `Ext-UX-Grid-GridViewMenuPlugin`是一个用于Ext JS框架的用户界面扩展插件,主要功能是增强表格(grid)的菜单功能。这个插件允许开发者为表格的菜单添加自定义事件处理和生成视图,从而提升用户体验并提供更丰富的...

    Ext grid 分页实例源码

    Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码

    bcprov-ext-jdk16-1.45.jar

    bcprov-ext-jdk16-1.45.jar资源包 ,在进行JAVA的ECC椭圆算法调用时,需要用到的jar包

    ext-ms-win-gdi-desktop-l1-1-0.dll

    ext-ms-win-gdi-desktop-l1-1-0.dll 用于解决这个dll文件丢失问题,下载后将此文件放置在相关文件根目录下,即可解决丢失问题

    EXT-JS Grid 用法

    EXT-JS Grid是EXT-JS库中的一个核心组件,它被广泛用于展示和操作大量数据。Grid提供了一种高效、可定制的表格视图,允许用户进行数据浏览、排序、筛选、分页以及编辑。EXT Designer是Sencha公司提供的一个可视化...

    ext-gwt分页 鉴于网上关于ext-gwt的技术文章很少代码页很少本着开源的精神本人特地写了一个分页的组件供大家学习欢迎下载

    EXT-GWT的分页组件通常是与Grid或DataView结合使用的,提供了一种直观的方式来展示和操作大量的表格数据。 首先,实现EXT-GWT分页,你需要理解以下几个关键概念: 1. **Store**:存储数据的核心组件,它可以连接到...

    bcprov-ext-jdk15-1.46.jar

    bcprov-ext-jdk15-1.46.jar

    ext-3.3.1 ext-3.3.1

    ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1

    ext grid json分页显示

    总结来说,"ext grid json分页显示"是通过EXT.js的Grid组件结合DWR的Ajax能力,实现前端数据的分页加载和显示。这种方式既提高了用户界面的响应速度,又有效管理了大数据量的显示,是现代Web应用中常用的数据展示...

    openwrt-23.05.2-x86-64-generic-ext4-combined-efi.img.gz

    openwrt软路由

    ext2.0 grid 分页实例(php)

    总的来说,Ext JS 2.0 Grid分页实例与PHP的结合,是前后端协同工作的一个典型示例,通过合理的数据分页策略,可以有效地处理大数据集,提供流畅的用户体验。在实际开发中,可以根据项目需求进行调整和优化,例如添加...

    3------通过实例学习------Ext.js------.pdf

    学习Ext.js不仅是学习其API和组件,更重要的是理解其背后的MVC(Model-View-Controller)架构和数据绑定机制,这将有助于构建高效、可维护的Web应用程序。通过不断实践和探索,你会发现Ext.js是一个功能强大且灵活的...

    Ext继承--Ext自定义组件的书写方式

    环境:Windows XP sp3、Tomcat 6.0、IE 7、MyEclipse 5.5、Ext 3.2 使用步骤: 1、下载解压之后,使用IDE导入工程 ...阅读对象:本中心学习Ext面向对象编程的人员 阅读条件:掌握OO的思路,熟悉JavaScript编程

Global site tag (gtag.js) - Google Analytics