关于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")
ordie("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"
});
最后传入start和limit参数以初始化数据。
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分页---好不好,大家说了算。下载不扣分,...
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
在IT行业中,ExtJS是一个广泛使用的JavaScript库,用于构建富客户端的Web应用程序。它提供了丰富的组件库,包括数据...在阅读这篇博客时,可以参照给出的"extgrid"文件,查看具体的代码实现,以便更好地理解和学习。
Ext3-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动...
"ext--grid--demo"可能是一个示例项目,展示了如何在Ext JS环境中使用数据网格功能。 在Ext JS中,Grid是用于显示和操作表格数据的核心组件。它支持多种功能,如排序、分页、过滤、编辑等,使得数据管理变得简单。...
通过以上讲解,我们可以了解到,"Ext扩展控件-------可以通过下拉列表框选择每页的分页条数"是一个增强EXT Grid分页功能的实用工具,它提升了用户体验,让数据展示更加灵活,同时也对开发者提出了更高的定制化要求。...
openwrt-x86-64-generic-ext4-combined-efi.img openwrt-x86-64-generic-ext4-combined-efi.img
`Ext-UX-Grid-GridViewMenuPlugin`是一个用于Ext JS框架的用户界面扩展插件,主要功能是增强表格(grid)的菜单功能。这个插件允许开发者为表格的菜单添加自定义事件处理和生成视图,从而提升用户体验并提供更丰富的...
Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码
bcprov-ext-jdk16-1.45.jar资源包 ,在进行JAVA的ECC椭圆算法调用时,需要用到的jar包
ext-ms-win-gdi-desktop-l1-1-0.dll 用于解决这个dll文件丢失问题,下载后将此文件放置在相关文件根目录下,即可解决丢失问题
EXT-JS Grid是EXT-JS库中的一个核心组件,它被广泛用于展示和操作大量数据。Grid提供了一种高效、可定制的表格视图,允许用户进行数据浏览、排序、筛选、分页以及编辑。EXT Designer是Sencha公司提供的一个可视化...
EXT-GWT的分页组件通常是与Grid或DataView结合使用的,提供了一种直观的方式来展示和操作大量的表格数据。 首先,实现EXT-GWT分页,你需要理解以下几个关键概念: 1. **Store**:存储数据的核心组件,它可以连接到...
bcprov-ext-jdk15-1.46.jar
ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1ext-3.3.1
总结来说,"ext grid json分页显示"是通过EXT.js的Grid组件结合DWR的Ajax能力,实现前端数据的分页加载和显示。这种方式既提高了用户界面的响应速度,又有效管理了大数据量的显示,是现代Web应用中常用的数据展示...
openwrt软路由
总的来说,Ext JS 2.0 Grid分页实例与PHP的结合,是前后端协同工作的一个典型示例,通过合理的数据分页策略,可以有效地处理大数据集,提供流畅的用户体验。在实际开发中,可以根据项目需求进行调整和优化,例如添加...
学习Ext.js不仅是学习其API和组件,更重要的是理解其背后的MVC(Model-View-Controller)架构和数据绑定机制,这将有助于构建高效、可维护的Web应用程序。通过不断实践和探索,你会发现Ext.js是一个功能强大且灵活的...
环境:Windows XP sp3、Tomcat 6.0、IE 7、MyEclipse 5.5、Ext 3.2 使用步骤: 1、下载解压之后,使用IDE导入工程 ...阅读对象:本中心学习Ext面向对象编程的人员 阅读条件:掌握OO的思路,熟悉JavaScript编程