Ext.onReady(function() {var cm = newExt.grid.ColumnModel([ {
header :'收入类型',
dataIndex :'income_code'},//sortable为true设置按列排序
header :'时间',
dataIndex :'income_date',
sortable :true,
type :'date',
width :200,
renderer : Ext.util.Format.dateRenderer('Y年m月d日')
header :'人员',
dataIndex :'income_person'},//定义表格中显示时间格式
id :'income_money',
header :'金额',
dataIndex :'income_money',
sortable :true},
id :'income_content',
header :'备注',
dataIndex :'income_content',
width :200} ]
);var store = newExt.data.Store({
proxy :newExt.data.HttpProxy({
url :'SelectIncomeForJson',
}),/*baseParams: {
start:0,
limit:10,
starttime: '',
endtime: ''
},*///baseParams 这个配置不是必须的,只要在重新加载或加载前设置即可
reader : newExt.data.JsonReader({
totalProperty :'totalProperty',
root :'incomeList'}, [ {
name :'income_code'}, {
name :'income_date'}, {
name :'income_person'}, {
name :'income_money'}, {
name :'income_content'} ])/*,//这个事件监听也没有必要,因为在点击查询按钮时手动设置了store的参数
listener:function(){
this.store.on('beforeload', function(store,options)
var new_params = {
start : 0,
limit : 20,
starttime : starttime,
endtime : endtime
Ext.apply(options.params, new_params);
}*/});var form = null;var grid=null;
grid= newExt.grid.GridPanel({
title :'ArrayGrid',
store : store,
cm : cm,
renderTo :'grid',
stripeRows :true,//设置斑马线表格
frame : true,//设置表格为panel中的一个frame
autoHeight : true,
width :700,
tbar : [ {
text :'回到顶部',
handler :function() {
grid.getView().scrollToTop();
}, {} ],
bbar : [newExt.PagingToolbar({
pageSize :10,
store : store,
displayInfo :true,
displayMsg :'显示第{0}条到第{1}条',
emptyMsg :"没有记录"}) ],
item : [ form= newExt.form.FormPanel({
labelAlign :'left',
labelWidth :50,
method :'post',//url : 'SelectIncomeForJson?start=0&limit=10',
width : 700,
renderTo :'form',
frame :true,
items : [ {//layout : 'column',
items : [ {
columnWidth :1,/** 此处两个属性构造一个field集合,使用边框围起来,若不使用则是一个普通面板标题,应用中很常用*/xtype :'fieldset',
checkboxToggle :true,
title :'筛选条件',
autoHeight :true,
defaults : {
width :600},//defaultType : 'textfield',//该type为全局,而单个item中的xtype便是局部变量
items : [ {
xtype :'datefield',
id:'starttime',
fieldLabel :'起始:',
name :'starttime',
width :150,
emptyText :'请选择',//若希望不选择时间时单击按钮不会产生空列表,则需将该配置去掉,或者在action中添加判断
format : ('Y-m-d')
xtype :'datefield',
id:'endtime',
fieldLabel :'截止:',
name :'endtime',
width :150,
emptyText :'请选择',
format : ('Y-m-d')
xtype :'button',
width :150,
text :'查询',
handler :function() {//form.getForm().submit();//这个提交操作没有起作用,但是只需要下边的组合就可以完成刷新数据的功能
//alert("变量starttime"+starttimeparam);
grid.getStore().baseParams.starttime=starttime.value;//grid.getStore().setBaseParam('starttime',starttime.value);//starttime为控件的id值,可以尝试注释id后,将无法获得
grid.getStore().setBaseParam('endtime',endtime.value);/** 以上设置暂且没有找到组合设置的方法,只能单个了
/*此处为组合配置,但是应该需要在创建store时声明,没有看到想要的结果
* grid.getStore().baseParams = {
start:0,
limit:10,
startime:starttime.value,
endtime:endtime.value//name为之前定义的变量
};*/grid.getStore().reload();//此处可以写成reload,也可写成load()
/*如果写成reload,那么则会重新提交原来store中的url请求,当然load也是,不管你form中有没有定义新的url,而使用submit则会调用配置的url
* 对于reload来说,仍然保留原来Param中配置的参数,但是使用load的话,将不会保留,
* (比如我在创建时都不声明,但是在第一次加载时配置params,那么在此处使用reload则会保留params,但在使用load时,将会清楚该params,)
* 而且在store的创建函数中定义baseParam与否并不影响重载时自己重新设置新的参数,也就是说不用提前声明,直接设定即可,
* 无论使用哪种方法只要'有'即可
//alert("starttime"+starttime.value);
store.load({
params : {
start :0,
limit :10/*,//该处命令是在初次加载页面时加载的参数和reload时的参数,因为没有查询参数,故将其注销,实现无条件查询,
//添加以后也不能正常显示无条件结果,因为此处并不能够读取到starttime,
starttime:starttime.value,
endtime:endtime.value*/}
Ext.onReady(function() {var cm = newExt.grid.ColumnModel([ {header :'收入类型',dataIndex :'income_code'},//sortable为true设置按列排序{header :'时间',dataIndex :'income_date',sortable :true,type :'date',width :200,...
可以使用add(Ext.data.Record[] records)或者add(Ext.data.Record record)向
store
末尾添加一个或多个record。如: 代码如下: var newRecord=new PersonRecord({name:”Tom”,age:22});
store
.add(newRecord); add函数会将新的
数据
添加到
store
的末尾,这对其原有的排序方式可能造成破坏,如果希望保持有序,应使用addSorted,调用方法与add相同。 可以使用insert方法将记录插入到指定的位置,如: 代码如下: var newRecord=n
学习Ext已经有些许时间了,发现实际运用
过程
中
Ext
Grid
系列还是最为常用的,本来想自己写些话语来总结的,无意间看到有位仁兄早就总结了,故冒犯贴在此处,以便以后翻阅,还望见谅
Ext -
Grid
Grid
是Ext框架
中
一个重要的组成部分。一般建立
Grid
主要
实现
数据
的增删改查。 建立一个
Grid
Grid
一般有三个主要的内容,ds,cm,
Grid
Pane...
[code="java"]/*请选择行*/
function pleaseclickRow(
grid
){
var selectedRows =
grid
.getSelectionModel().getSelections();
if(selectedRows.length==0){
Ext.Msg.alert("系统提示","请选择行!");
return false;...