Сборка рецептов для Ext JS 6.2.0 - на текущий момент именно эту версию раздают под GPL
1. Как переключать контент в регионе?
2. Как вернуть Grid вертикальный scrollbar, если он не главный вид, а вложен в какой-нибудь tab?
3. Как передать record при даблклике на строке в grid в окно/панель? И установить фокус на нужное поле?
К примеру, есть раскладка, в правом регионе надо переключать контент, делаем так
region: 'east',
xtype: 'container',
layout: 'card',
...
activeItem: 0,
items: [{
xtype: 'panel',
title: 'Info',
cls: 'info-panel',
bodyPadding: 10,
bind: {
html: '{infoText}'
}
}, {
xtype: 'mainform'
}]
3. Как передать record при даблклике на строке в grid в окно/панель?
Для создаваемого окна нужно подготовить ViewModel, в котором сделать раздел data
//о чем сенча думает, но косяк уже не одну версию,
//судя по форуму
1. Как переключать контент в регионе?
2. Как вернуть Grid вертикальный scrollbar, если он не главный вид, а вложен в какой-нибудь tab?
3. Как передать record при даблклике на строке в grid в окно/панель? И установить фокус на нужное поле?
Как переключать контент в регионе?
просто.К примеру, есть раскладка, в правом регионе надо переключать контент, делаем так
region: 'east',
xtype: 'container',
layout: 'card',
...
activeItem: 0,
items: [{
xtype: 'panel',
title: 'Info',
cls: 'info-panel',
bodyPadding: 10,
bind: {
html: '{infoText}'
}
}, {
xtype: 'mainform'
}]
и затем в контроллере делаем функцию
setActiveEastCard: function(n) {
var me = this,
cards = me.getView().down('container[region=east]');
//Retrieves the first descendant of this container which matches the passed selector.
//The passed in selector must comply with an Ext.ComponentQuery selector,
//or it can be an actual Ext.Component.
cards.setActiveItem(n);
},
соответственно, при вызове setActiveEastCard(0) переключимся на текст, а setActiveEastCard(1) - на форму, которая предоставлена xtype 'mainform'.
Пример - https://fiddle.sencha.com/#view/editor&fiddle/2b2n
2. Как вернуть Grid вертикальный scrollbar, если он не mainView, а вложен в какой-нибудь tab?
тоже просто.
Для этого таб должен иметь layout: ' fit'
Пример - https://fiddle.sencha.com/#view/editor&fiddle/2b18
3. Как передать record при даблклике на строке в grid в окно/панель?
Для создаваемого окна нужно подготовить ViewModel, в котором сделать раздел data
Ext.define('Fiddle.view.DetailViewModel', {в окне получателе нужно установить viewModel : 'detailform' и для каждого поля приписать bind
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.detailform',
data : {
currentRecord : null
}
});
items: [далее, в контроллере при создании окна надо передать record
{
fieldLabel: 'Id',
name: 'id',
xtype: 'displayfield',
bind: {
value: '{currentRecord.id}'
}
},
{
xtype: 'textfield',
name: 'name',
fieldLabel: 'ФИО',
bind: {
value: '{currentRecord.name}'
}
},
],
onRowDbl:function(grid,record,index,opts){//следующая строка реализует автофокус - не знаю,
var wnd=Ext.create({
xtype: 'clientEdit', //xtype вашего окна
});
wnd.getViewModel().set('currentRecord', record);
wnd.show();
//о чем сенча думает, но косяк уже не одну версию,
//судя по форуму
if(wnd.down('[autoFocus=true]')){wnd.down('[autoFocus=true]').focus();}
},
Комментариев нет:
Отправить комментарий