项目开发中,Grid组件少不了搜索功能,在Extjs4中,搜索组件以插件的形式出现,而且实现也非常简单,搜索组件位于examples/ux/form目录下,JS文件是SearchField.js。
Grid加载搜索功能,要注意的是:
1、开启延迟加载,即Ext.Loader.setConfig({enabled: true});
2、设置插件的目录:Ext.Loader.setPath('Ext.ux', '../../examples/ux'); ,需要注意,插件所在目录一定要正确,否则加载失败,就实现不了所要功能了。
效果图:
初始加载
输入查询条件后
HTML代码:
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<htmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
-
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
- <title>SearchGrid-MHZG.NET</title>
-
<linkrel="stylesheet"type="text/css"href="../../resources/css/ext-all.css"/>
-
<styletype="text/css">
-
#search-resultsa{
- color:#385F95;
-
font:bold11pxtahoma,arial,helvetica,sans-serif;
- text-decoration:none;
-
}
-
-
#search-resultsa:hover{
- text-decoration:underline;
-
}
-
-
#search-resultsp{
- margin:3px!important;
- }
-
- .search-item{
- font:normal11pxtahoma,arial,helvetica,sans-serif;
- padding:3px10px3px10px;
- border:1pxsolid#fff;
- border-bottom:1pxsolid#eeeeee;
- white-space:normal;
- color:#555;
- }
- .search-itemh3{
- display:block;
- font:inherit;
- font-weight:bold;
- color:#222;
- }
-
- .search-itemh3span{
- float:right;
- font-weight:normal;
- margin:005px5px;
- width:100px;
- display:block;
- clear:none;
- }
- /*这里要注意这两张图片的路径要正确*/
- .x-form-clear-trigger{
- background-image:url(../../resources/themes/images/default/form/clear-trigger.gif);
- }
-
- .x-form-search-trigger{
- background-image:url(../../resources/themes/images/default/form/search-trigger.gif);
- }
- </style>
-
<scripttype="text/javascript"src="../../bootstrap.js"></script>
-
<scripttype="text/javascript"src="../../locale/ext-lang-zh_CN.js"></script>
-
<scripttype="text/javascript"src="searchgrid.js"></script>
- </head>
-
- <body>
-
<divid="demo"></div>
- </body>
- </html>
SearchGrid.js:
- Ext.Loader.setConfig({enabled:true});
-
Ext.Loader.setPath('Ext.ux','../../examples/ux');
- Ext.require([
-
'Ext.grid.*',
-
'Ext.toolbar.Paging',
-
'Ext.util.*',
-
'Ext.data.*',
-
'Ext.ux.form.SearchField'
- ]);
-
-
Ext.onReady(function(){
-
Ext.define('MyData',{
-
extend:'Ext.data.Model',
- fields:[
-
'title','author',
-
-
{name:'hits',type:'int'},
-
'addtime'
- ]
- });
-
-
-
varstore=Ext.create('Ext.data.Store',{
-
- pageSize:50,
-
model:'MyData',
-
-
remoteSort:true,
- proxy:{
-
-
type:'ajax',
-
url:'searchgrid.asp',
-
- reader:{
-
root:'items',
-
totalProperty:'total'
- },
-
simpleSortMode:true
- },
- sorters:[{
-
-
property:'hits',
-
-
direction:'DESC'
- }]
- });
-
-
-
vargrid=Ext.create('Ext.grid.Panel',{
- store:store,
-
columnLines:true,
- columns:[
-
{text:"标题",width:120,dataIndex:'title',sortable:true},
-
{text:"作者",width:140,dataIndex:'author',sortable:false},
-
{text:"点击数",width:100,dataIndex:'hits',sortable:true},
-
{text:"添加时间",width:150,dataIndex:'addtime',sortable:true}
- ],
- height:400,
- width:520,
- x:20,
- y:40,
-
title:'ExtJS4SearchGrid-Grid搜索',
-
disableSelection:true,
-
loadMask:true,
-
renderTo:'demo',
- viewConfig:{
-
id:'gv',
-
trackOver:false,
-
stripeRows:false
- },
- dockedItems:[{
-
dock:'top',
-
xtype:'toolbar',
- items:{
- width:300,
-
fieldLabel:'搜索',
- labelWidth:50,
-
xtype:'searchfield',
- store:store
- }
- },{
-
dock:'bottom',
-
xtype:'pagingtoolbar',
- store:store,
- pageSize:25,
-
displayInfo:true,
-
displayMsg:'显示{0}-{1}条,共计{2}条',
-
emptyMsg:'没有数据'
- }]
-
- })
- store.loadPage(1);
- })
代码完成了Grid组件异步加载信息、分页和搜索功能,可以满足一般使用情况了。
服务端代码,由于使用测试数据,这里只使用了最简单的方法来实现搜索效果,实际操作中,需要将查询条件置于SQL语句中,达到搜索效果。
SearchGrid.asp:
- <%
-
Response.ContentType="text/html"
-
Response.Charset="UTF-8"
- %>
- <%
-
start=Request("start")
-
limit=Request("limit")
-
query=Request("query")
- Ifstart=""Then
- start=0
- EndIf
- Iflimit=""Then
- limit=50
- EndIf
-
sorts=Replace(Trim(Request.Form("sort")),"'","")
-
dir=Replace(Trim(Request.Form("dir")),"'","")
-
- Ifquery="newstitle"Then
-
Echo("{")
-
Echo("""total"":")
-
Echo("""1")
-
Echo(""",""items"":[")
-
Echo("{")
-
Echo("""title"":""newstitle""")
-
Echo(",")
-
Echo("""author"":""author""")
-
Echo(",")
-
Echo("""hits"":""100""")
-
Echo(",")
-
Echo("""addtime"":"""&Now()&"""")
-
Echo("}")
-
Echo("]}")
- Else
- Dimcounts:counts=300
-
- DimLs:Ls=Cint(start)+Cint(limit)
- IfLs>=countsThen
- Ls=counts
- EndIf
-
-
Echo("{")
-
Echo("""total"":")
-
Echo(""""&counts&""",")
-
Echo("""items"":[")
- Fori=start+1ToLs
-
Echo("{")
-
Echo("""title"":""newstitle"&i&"""")
-
Echo(",")
-
Echo("""author"":""author"&i&"""")
-
Echo(",")
-
Echo("""hits"":"""&i&"""")
-
Echo(",")
-
Echo("""addtime"":"""&Now()&"""")
-
Echo("}")
-
Ifi<LsThen
-
Echo(",")
-
EndIf
- Next
-
-
Echo("]}")
- EndIf
- FunctionEcho(str)
- Response.Write(str)
- EndFunction
- %>
至此,带搜索功能的Grid就全部完成了。
分享到:
相关推荐
ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(八)---Grid多选/全选 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(十)---ExtJS4图片验证码的实现
ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(三)---VBox的使用 ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(二)---HBox的使用 ExtJS4学习笔记(五)---Grid分页 ExtJS4...
NULL 博文链接:https://lucky16.iteye.com/blog/1522254
目录 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
extjs-theme-bootstrap-master.zip
Extjs4---grid的修改、删除功能---结合struts2、hibernate
NULL 博文链接:https://lucky16.iteye.com/blog/1490278
Extjs 5 学习笔记,在网上下载整理好的。
extjs2----关于extjs 的使用,操作.比较初级,但是也比较使用。适合初步接触extjs的朋友
语言程序设计资料:ExtJs学习笔记-2积分.doc
exjts4 学习笔记源码,源码包含windws,hbox,vbox和Grid的应用,其中grid介绍比较多。下载解压后,部署后就可以使用,所有代码均在demo文件夹下。更多extjs4教程,请关注http://www.mhzg.net
ExtJs学习笔记,共30讲 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 8. Ext.data.JsonReader篇二 15 ...
官方最新版本Extjs6.2版本sdk,创建新项目的时候需要用, 全面的核心框架,具有最新的Javascript标准支持 新的漂亮组件和主题,以创建漂亮的企业应用程序 现代工具链,用于构建优化,高性能,通用的应用程序 用于可视...
自己总结的extjs4学习笔记,自己总结的extjs4学习笔记,自己总结的extjs4学习笔记,
extjs_4.1.0_community_extjs4-mvc-complex-dashboard
一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa
Extjs 中想改变grid 行高,如果只是简单的设置了height的值是可以实现grid 的行高,但是如果使用了插件:rowexpander ,最出现新的问题。 感兴趣的朋友可以试试的。 此文档可以解决你的烦恼,为了找到资源下载,...
extjs4.0开发人员以及学习可以下载参考