`
raisun_1988
  • 浏览: 117932 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

ExtJs学习笔记(6)_可分页的GridPanel

    博客分类:
  • Java
阅读更多

ExtJs学习笔记(6)_可分页的GridPanel

一.WCF部分
1.通过查看官方的示例得知,分页数据源需要一个记录总数值,为保持通用性,这里借鉴jillZhang的文章http://www.cnblogs.com/jillzhang/archive/2008/06/29/1232086.html,把他写的通用类PageData拿过来直接用

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1usingSystem;
2usingSystem.Runtime.Serialization;
3
4namespaceAjax_WCF
5{
6[DataContract]
7publicclassPageData<T>
8{
9[DataMember]
10publicintTotolRecord
11{get;set;}
12
13[DataMember]
14publicTData
15{get;set;}
16}
17}

2.服务端的WCF方法:GetDataByPage
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->[OperationContract]
[WebInvoke(Method
="*",ResponseFormat=WebMessageFormat.Json,UriTemplate="GetDataByPage?start={start}&limit={limit}")]
publicPageData<T_Class[]>GetDataByPage(intstart,intlimit)
{
PageData
<T_Class[]>_Result=newPageData<T_Class[]>();
using(DBDataContextdb=newDBDataContext())
{
try
{
IQueryable
<T_Class>query=db.T_Classes;
_Result.TotolRecord
=query.Count();
varquery2
=query.OrderBy(c=>c.F_RootID).ThenBy(c=>c.F_Orders).Select(c=>new{F_ID=c.F_ID,F_ClassName=c.F_ClassName,F_ParentID=

c.F_ParentID,F_Orders
=c.F_Orders,F_ReadMe=c.F_ReadMe}).Skip(start).Take(limit);
_Result.Data
=db.ExecuteQuery<T_Class>(query2,true).ToArray<T_Class>();
}
catch{}
db.Connection.Close();
}
return_Result;
}

这里讲一个小技巧,也是从jillZhang那里学过来的,以前默认在linq to sql(dbml)设计器里拖出来的类,默认生成的代码是不支持序列化的,我们只能手动添加[DataContract]和[DataMember],

其实系统可以自动生成的,方法是在dbml的属性栏里设置"序列化模式"为"单向",如下图:


二.静态页部分

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="04_Grid_Page.aspx.cs"Inherits="Ajax_WCF._4_Grid_Page"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<linkrel="stylesheet"type="text/css"href="js/ext2.2/resources/css/ext-all.css"/>
<scripttype="text/javascript"src="js/ext2.2/adapter/ext/ext-base.js"></script>
<scripttype="text/javascript"src="js/ext2.2/ext-all.js"></script>
<title></title>
</head>
<body>
<scripttype="text/javascript">
Ext.onReady(
function(){
varproxy=newExt.data.HttpProxy({
url:
'MyService.svc/GetDataByPage',
method:
'GET'
});

varreader=newExt.data.JsonReader(
{root:
'Data',totalProperty:'TotolRecord'},
[
{name:
'F_ID'},
{name:
'F_ClassName'},
{name:
'F_ParentID'},
{name:
'F_Orders'},
{name:
'F_ReadMe'}
]
);

varstore=newExt.data.Store(
{proxy:proxy,reader:reader}
);

//createtheGrid
vargrid=newExt.grid.GridPanel({
store:store,
columns:[
newExt.grid.RowNumberer(),
{id:
'F_ID',header:"分类ID",width:30,sortable:true,dataIndex:'F_ID'},
{header:
"分类名称",width:75,sortable:true,dataIndex:'F_ClassName'},
{header:
"父类ID",width:75,sortable:true,dataIndex:'F_ParentID'},
{header:
"排序号",width:75,sortable:true,dataIndex:'F_Orders'},
{header:
"备注",width:50,sortable:true,dataIndex:'F_ReadMe'}
],
stripeRows:
true,
autoExpandColumn:
'F_ID',
height:
393,
width:
600,
title:
'产品信息',
viewConfig:
{
columnsText:
'',
sortAscText:
'升序',
sortDescText:
'降序'
},
bbar:
newExt.PagingToolbar({
pageSize:
15,//每页显示的记录值
store:store,
displayInfo:
true,
displayMsg:
'总记录数{0}-{1}of{2}',
emptyMsg:
"没有记录"
})
});

grid.render(
'page-grid');
store.load({params:{start:
0,limit:15}});
grid.getSelectionModel().selectFirstRow();
});
</script>
<divid="page-grid"></div>
</body>
</html>
转载请注明来自"菩提树下的杨过"http://www.cnblogs.com/yjmyzz/archive/2008/08/30/1280282.html

欢迎加入:http://www.itpob.cn/bbs

0
0
分享到:
评论

相关推荐

    EXTJS_GridPanel_ColumnModel_列的宽度随数据变化而变化

    这篇博客"EXTJS_GridPanel_ColumnModel_列的宽度随数据变化而变化"探讨了如何使GridPanel的列宽根据数据内容自动调整,以确保最佳的用户界面体验。 在EXTJS中,ColumnModel允许我们定义每列的标题、数据字段、宽度...

    ExtJs 教程与实例_学习笔记

    ExtJs 教程与实例_学习笔记 1.什么是ExtJs 2....等等

    extjs_tapestry.rar_extjs tapestry_extjs_tapestry_tapestry

    6. **样式与布局**:由于两个框架都涉及用户界面,可能需要处理 ExtJS 样式与 Tapestry 默认样式之间的冲突,以确保视觉一致性。 通过这样的集成,开发者可以获得 ExtJS 提供的精美 UI 组件和 Tapestry 强大的后端...

    EXT_ASP.rar_asp extjs_extjs_extjs asp_extjs+asp

    在"EXT_ASP.rar_asp extjs_extjs_extjs asp_extjs+asp"这个压缩包中,我们可以看到EXTJS与ASP结合使用的示例,用于开发一个通讯录程序,这是一个很好的学习EXTJS和ASP集成的实践项目。 首先,EXTJS的核心在于它的...

    extjs_simple.rar_extjs_extjs simple_extjs_simple

    ExtJS实现的用户管理界面,实现了用户的增加功能、修改功能、删除功能、查看工程。还提供了下拉列表选择框进行年龄的选择功能。

    ExtJS学习笔记.doc

    ExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.doc

    php-blog.rar_extjs_extjs php_extjs php bl_php blog

    6. **性能优化**:使用EXTJS时,应考虑页面加载速度,可能需要进行数据分页、延迟加载等优化。PHP端则可以通过缓存策略、数据库查询优化等方式提升性能。 7. **版本控制**:虽然未提及,但良好的开发实践中,项目...

    ssh_extjs.rar_extjs_extjs ssh_oracle

    标题中的"ssh_extjs.rar_extjs_extjs ssh_oracle"提到了几个关键的IT技术,它们是SSH(Spring、Struts、Hibernate...学习和理解这些技术对于提升Java Web开发能力至关重要,尤其是在需要构建高效、可扩展的业务应用时。

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

    这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...

    获取ExtjS表格的值_ExtJS_3.4cellSelectModel

    资源名称:获取ExtjS表格的值_ ExtJS_3.4 cellSelectModel资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    Extjs4.0学习笔记

    Extjs4.0学习笔记,以下是部分介绍: xtjs4,创建Ext组件有了新的方式,就是Ext.create(....),而且可以使用动态...ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(十)---ExtJS4图片验证码的实现

    extJs 2.1学习笔记

    目录 1. ExtJs 结构树 2 2. 对ExtJs的态度 3 3. Ext.form概述 4 4. Ext.TabPanel篇 5 5. Function扩展篇 7 6. Ext.data.Store篇 10 7. Ext.data.JsonReader篇一 12 ...28. extJs 2.0学习笔记(ext.js篇) 77

    ExtJS6学习文档_PDF格式带书签

    本学习文档聚焦于ExtJS 6版本,以下是各章节的主要知识点: 第1章:ExtJS入门指南 在这一章中,你会了解到ExtJS的基本架构和工作原理,包括如何创建基本的页面、加载库文件、理解和使用MVC(Model-View-Controller...

    ExtJS--Windows.rar_extjs_extjs CSharp_extjs windows

    6. **拖放功能**:通过ExtJS的`DragDrop`插件,可以实现Web应用内的拖放操作,如同Windows文件管理器中的文件拖放。 7. **数据绑定**:ExtJS的数据模型和Store组件可以与C#后端的数据接口无缝对接,实现数据的实时...

    extjs_struts2_整合

    extjs_struts2_整合

    root.rar_BS_extjs_extjs php_extjs php erp_php extjs OA

    EXTJS+PHP bs小型房屋管理系统

    ExtJs_ASPMVC_Batch_Operation.rar

    总之,"ExtJs_ASPMVC_Batch_Operation.rar"是一个综合性的示例,涵盖了Web开发中的多个重要技术,对于想要深入学习ExtJS与ASP.NET MVC集成的开发者来说,是一个宝贵的资源。通过实践这个项目,你可以了解到如何在...

    Extjs 5 学习笔记

    ### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...

    Extjs入门教程(treePanel和GridPanel)

    GridPanel则是ExtJS中的表格视图组件,它可以展示大量的数据,并提供排序、筛选、分页等功能。在集成TreePanel和GridPanel时,可能涉及到的概念有:将TreePanel的节点与GridPanel的数据关联,实现点击树节点时动态...

    extjs3.1中文API_chm版+书

    extjs3.1中文API_chm版+书 下次再穿个可视化编辑器

Global site tag (gtag.js) - Google Analytics