求助ExtJS,如何在Ext.grid.GridPanel上加一个toolbar或menu。

duyu1025 2011-04-28 08:59:30
我想在这个GridPanel上加一个toolbar或menu ,里面放上一个文本框,跟一个button,就像底部的toolbar一样。是做搜索功能,可以过滤下面的数据,试了很多方法都加不上去,这个东西稍微错一点就不出来,各位帮帮忙吧,贴上部分JS代码:


Ext.onReady(function(){
var data ;
data = ${requestScope.s};
var cm = new Ext.grid.ColumnModel(
[
new Ext.grid.RowNumberer(),
{header:'标题',dataIndex:'title',sortable:true,width:document.body.clientWidth/10*5.4},
{header:'提问时间',dataIndex:'subDate',sortable:true,width:document.body.clientWidth/10*2},
{header:'提问者',dataIndex:'username',sortable:true,width:document.body.clientWidth/10},
{header:'类型',dataIndex:'type',width:document.body.clientWidth/10},
{header:'id',dataIndex:'id',width:document.body.clientWidth/10}
]
);
var store = new Ext.data.SimpleStore({
proxy : new Ext.data.PagingMemoryProxy(data),
fields: [
{name:'title'},
{name:'subDate'},
{name:'username'},
{name:'type'},
{name:'id'}
]
});
var bbar = new Ext.PagingToolbar(
{
displayMsg:'显示第{0}条到第{1}条记录,一共{2}条',
emptyMsg:'没有记录',
beforePageText:'当前页码',
afterPageText:'共{0}页',
firstText:'第一页',
prevText:'上一页',
nextText:'下一页',
lastText:'最后一页',
refreshText:'刷新当前页',
autoDestroy :true,
autoWidth:true,
autoHeight:true,
pageSize:20,//一页显示几个
store: store,
displayInfo:true,
bufferResize :true
});

var grid = new Ext.grid.GridPanel({
viewConfig:
{
columnsText: '列',
sortAscText: '升序',
sortDescText: '降序'
},
loadMask :{msg:"数据加载中,请稍等"},//加载时有遮挡
frame: true,
frame:true,//有面板
columnLines:true,
height:480,
width:document.body.clientWidth,
border:false,
autoDestroy :true,
autoSizeColumns:true,
monitorResize:true,
store: store,
cm:cm,//字段
sm:new Ext.grid.RowSelectionModel(),
bbar:bbar
});
var id;
grid.on('click',function(){
id = grid.getSelectionModel().getSelected().get('id');
location.href="http://www.baidu.com";

});
grid.render("div_list");
store.load({params:{start:0, limit:20}});
});




...全文
961 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dataminer_2007 2011-04-29
  • 打赏
  • 举报
回复
用 tbar , 在tbar 里面加上按钮,输入框都可以
zoujp_xyz 2011-04-29
  • 打赏
  • 举报
回复
tbar: [
{
xtype: "panel", border: false,
items: [new Ext.form.TwinTriggerField({
xtype: 'twintriggerfield', emptyText: "请输入...", name: "", width: 100,
trigger1Class: 'x-form-clear-trigger',
trigger2Class: 'x-form-search-trigger',
onTrigger1Click: function(e) {
this.reset();
},
onTrigger2Click: function(e) {

}
}),{xtype:"button",text:"查询"}]
}
]
汉尼拔 2011-04-28
  • 打赏
  • 举报
回复
既然是过滤,不用加文本框和button

只要加一个组合框就可以实现过滤了.
你要过滤什么 ,下面代码是根据'标题'过滤的


Ext.onReady(function(){
var data ;
data = ${requestScope.s};
var cm = new Ext.grid.ColumnModel(
[
new Ext.grid.RowNumberer(),
{header:'标题',dataIndex:'title',sortable:true,width:document.body.clientWidth/10*5.4},
{header:'提问时间',dataIndex:'subDate',sortable:true,width:document.body.clientWidth/10*2},
{header:'提问者',dataIndex:'username',sortable:true,width:document.body.clientWidth/10},
{header:'类型',dataIndex:'type',width:document.body.clientWidth/10},
{header:'id',dataIndex:'id',width:document.body.clientWidth/10}
]
);
var store = new Ext.data.SimpleStore({
proxy : new Ext.data.PagingMemoryProxy(data),
fields: [
{name:'title'},
{name:'subDate'},
{name:'username'},
{name:'type'},
{name:'id'}
]
});
var bbar = new Ext.PagingToolbar(
{
displayMsg:'显示第{0}条到第{1}条记录,一共{2}条',
emptyMsg:'没有记录',
beforePageText:'当前页码',
afterPageText:'共{0}页',
firstText:'第一页',
prevText:'上一页',
nextText:'下一页',
lastText:'最后一页',
refreshText:'刷新当前页',
autoDestroy :true,
autoWidth:true,
autoHeight:true,
pageSize:20,//一页显示几个
store: store,
displayInfo:true,
bufferResize :true
});

var grid = new Ext.grid.GridPanel({
viewConfig:
{
columnsText: '列',
sortAscText: '升序',
sortDescText: '降序'
},
loadMask :{msg:"数据加载中,请稍等"},//加载时有遮挡
frame: true,
frame:true,//有面板
columnLines:true,
height:480,
width:document.body.clientWidth,
border:false,
autoDestroy :true,
autoSizeColumns:true,
monitorResize:true,
store: store,
cm:cm,//字段
sm:new Ext.grid.RowSelectionModel(),
bbar:bbar,
tbar: [new Ext.form.ComboBox({
store: store,
mode: 'local',
emptyText:'这里输入过滤内容...',
displayField:'title'
})]
});
var id;
grid.on('click',function(){
id = grid.getSelectionModel().getSelected().get('id');
location.href="http://www.baidu.com";

});
grid.render("div_list");
store.load({params:{start:0, limit:20}});
});
zhouhangjian 2011-04-28
  • 打赏
  • 举报
回复
net/PointForum/ui/scripts/csdn/Plugin/001/face/13.gif" alt="" />

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧