如何在EXTJS 4中为网格添加工具栏
How to add a toolbar to grid in EXTJS 4
所以,我有一个简单的工具栏与按钮添加到我的网格问题。首先,我创建一个像这样的网格:
Ext.define('MyApp.view.user.List', {
extend: 'Ext.grid.Panel',
alias: 'widget.userlist',
title: 'All Users',
store: 'Users',
initComponent: function() {
this.columns = [
{header: 'login', dataIndex: 'login', flex: 1},
{header: 'password', dataIndex: 'password', flex: 1},
{header: 'name', dataIndex: 'name', flex: 1},
{header: 'email', dataIndex: 'email', flex: 1},
{header: 'phone', dataIndex: 'phone', flex: 1}
];
this.callParent(arguments);
}
});
很好,我得到了我的网格。但是现在我需要添加带有按钮的工具栏,它将对网格条目执行CRUD操作。所以我添加了这段代码:
...
store: 'Users',
items: [{
xtype: 'toolbar',
items: [{
text: 'Добавить',
action: 'create'
},
{
text: 'Редактировать',
action: 'update'
},
{
text: 'Удалить',
action: 'destroy'
}
]
}
],
...
但这似乎并没有改变任何事情。我仍然只能在浏览器中看到普通的网格,所以问题是我做错了什么?
这个视图的全部代码现在看起来像这样:
Ext.define('MyApp.view.user.List', {
extend: 'Ext.grid.Panel',
alias: 'widget.userlist',
title: 'All Users',
store: 'Users',
items: [{
xtype: 'toolbar',
items: [{
text: 'Добавить',
action: 'create'
},
{
text: 'Редактировать',
action: 'update'
},
{
text: 'Удалить',
action: 'destroy'
}
]
}
],
initComponent: function() {
this.columns = [
{header: 'login', dataIndex: 'login', flex: 1},
{header: 'password', dataIndex: 'password', flex: 1},
{header: 'name', dataIndex: 'name', flex: 1},
{header: 'email', dataIndex: 'email', flex: 1},
{header: 'phone', dataIndex: 'phone', flex: 1}
];
this.callParent(arguments);
}
});
我需要更改/添加什么才能使其工作?
你只需要在initComponent内部指定工具栏配置。
this.dockedItems = [{
xtype: 'toolbar',
dock: 'top',
items: [{
text: 'Добавить',
action: 'create'
}, {
text: 'Редактировать',
action: 'update'
}, {
text: 'Удалить',
action: 'destroy'
}]
}
);
修改定义:
Ext.define('MyApp.view.user.List', {
extend: 'Ext.grid.Panel',
alias: 'widget.userlist',
title: 'All Users',
store: 'Users',
tbar: [{
text: 'Добавить',
action: 'create'
}]
// .....
});
构建组件的更好方法:
Ext.define('MyApp.view.user.List', {
extend: 'Ext.grid.Panel',
alias: 'widget.userlist',
title: 'All Users',
initComponent: function () {
var me = this;
var store = Ext.storeMgr.lookup('Users');
Ext.applyIf(me, {
store: store,
columns: [
{header: 'login', dataIndex: 'login', flex: 1},
{header: 'password', dataIndex: 'password', flex: 1},
{header: 'name', dataIndex: 'name', flex: 1},
{header: 'email', dataIndex: 'email', flex: 1},
{header: 'phone', dataIndex: 'phone', flex: 1}
],
dockedItems: [{
xtype: 'tbar',
dock: 'top',
items: [
{
text: 'Добавить',
action: 'create'
},
{
text: 'Редактировать',
action: 'update'
},
{
text: 'Удалить',
action: 'destroy'
}]
}]
});
me.callParent(arguments);
// could be something like this to load the store
me.on('afterrender', function() {
me.getStore().loadPage(1);
} , me);
}
});
相关文章:
- 在不刷新整个网格的情况下,向Asp.net网格视图添加新行
- 在不添加树节点的情况下从网格拖放到树
- 在GridView中,当单击复选框时,在网格的同一行中使用JavaScript将标签中的值添加到TextBox
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- ExtJ将工具提示添加到网格单元格文本中
- 将DevExtreme网格添加到Wordpress
- 对如何使用 960 网格添加左边距感到困惑
- 剑道网格值在向网格添加新记录时不会更改
- 使用本机add_widget向Gridster.js网格添加项导致未知错误
- 如何将轴标签和网格添加到拉斐尔条形图中
- 如何使用angular js为剑道ui网格添加条件列
- 如何向ext网格添加自定义排序
- 向蒙皮网格添加纹理
- 用javascript向jquery网格添加行
- 剑道网格:添加新的行嵌套对象停止工作
- 向子网格添加自定义视图时出现错误“添加现有按钮”
- 如何在三个js中为子网格添加轮廓
- 向网格添加新行
- 如何在EXTJS 4中为网格添加工具栏
- 网格添加自定义宽度,高度,左和顶部