javascript Табличкисвыпадающмимспискамии复选框#ExtJS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript Табличкисвыпадающмимспискамии复选框#ExtJS相关的知识,希望对你有一定的参考价值。
Ext.Loader.setConfig({
enabled: true
});
Ext.Loader.setPath('Ext.ux', 'file:///d:/www/examples/extjs-4.1.1-src/extjs-4.1.1/examples/ux');
Ext.require([
'Ext.selection.CellModel',
'Ext.grid.*',
'Ext.data.*',
'Ext.util.*',
'Ext.state.*',
'Ext.form.*',
'Ext.ux.CheckColumn'
]);
if (window.location.search.indexOf('scopecss') !== -1) {
// We are using ext-all-scoped.css, so all rendered ExtJS Components must have a
// reset wrapper round them to provide localized CSS resetting.
Ext.scopeResetCSS = true;
}
Ext.onReady(function(){
elma();
//Идентификатор материала, который мы установили в новое значение
var newItemCangedId = 0;
//Идентификатор тезнологии которую только что выбрали в выпадающем списке в табличке
var newTechnologyCangedId = 0;
Ext.QuickTips.init();
function formatDate(value){
return value ? Ext.Date.dateFormat(value, 'M d, Y') : '';
}
//Это столбкик которые отображаются в твбличке
Ext.define('ProjectExternal', {
extend: 'Ext.data.Model',
fields: [
// the 'name' below matches the tag name to read, except 'availDate'
{name: 'Changed', mapping: 'Changed', type: 'bool'},
{name: 'Proj_Id', mapping: 'Proj_Id', type: 'int'},
{name: 'Id', mapping: 'Id', type: 'int'},
{name: 'Name', mapping: 'Name', type: 'string'},
{name: 'Item' },
{name: 'Technology' },
{name: 'CreatedDate', mapping: 'CreatedDate' , type: 'date', dateFormat: 'm/d/Y'},
{name: 'Thickness', mapping: 'Thickness', type: 'float'},
{name: 'Size', mapping: 'Size', type: 'string'},
{name: 'Cnt', mapping: 'Cnt', type: 'float'},
{name: 'Status', mapping: 'Status', type: 'string'},
{name: 'IsMade', mapping: 'IsMade' , type: 'bool'},
{name: 'IsReceived', mapping: 'IsReceived' , type: 'bool'},
]
});
//Модкль номеклатуры
Ext.define('ItemModel', {
extend: 'Ext.data.Model',
fields: [
{name: 'Name', mapping: 'Name', type: 'string'},
{name: 'Id', mapping: 'Id', type: 'int'},
]
});
//Модкль технологий
Ext.define('TechnologyModel', {
extend: 'Ext.data.Model',
fields: [
{name: 'Name', mapping: 'Name', type: 'string'},
{name: 'Id', mapping: 'Id', type: 'int'},
]
});
//Создаем модель данных для таблички
var store = Ext.create('Ext.data.Store', {
// destroy the store if the grid is destroyed
autoDestroy: true,
model: 'ProjectExternal',
proxy: {
type: 'ajax',
url: 'http://127.0.0.1:9000/table/ProjectExternal',
},
//Сортировка по умолчанию
sorters: [{
property: 'Id',
direction:'ASC'
}]
});
//Создаем модель данных для списка номеклатуры
var storeItem = Ext.create('Ext.data.Store', {
model: 'ItemModel',
proxy: {
type: 'ajax',
url: 'http://127.0.0.1:9000/InfoCyber/getItems',
},
});
//Создаем источник данных по получению технологий
var storeTechnology = Ext.create('Ext.data.Store', {
model: 'TechnologyModel',
proxy: {
type: 'ajax',
url: 'http://127.0.0.1:9000/Info/getTechnology',
}
});
//Вызывается при реактировании строки
var cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1,
listeners: {
edit: function (editor, ctx, eOpts) {
if(ctx.field == "Item")
{
}
//Скрипт вызывается при изменении элементов в табличке
//Тут надо послать запрос на изменение существующего заказа!
//newItemCangedId
var newModel = ctx.record.copy(); //copy the old model
return;
}
}
});
//Настройка видимости стобцов в таблице
var grid = Ext.create('Ext.grid.Panel', {
viewConfig: {
loadingText: "Загрузка данных..."
},
store: store,
columns: [
{
xtype: 'checkcolumn',
header: ' ',
dataIndex: 'Changed',
width: 30,
stopSelection: false,
listeners: {
checkchange : function( editor , rowindex , isChecked){
return;
}
}
}, {
header: '#',
dataIndex: 'Proj_Id',
width: 50
}, {
header: 'Наименование',
dataIndex: 'Name',
width: 250,
editor: {
allowBlank: false
}
}, {
header: 'Материал',
dataIndex: 'Item',
width: 200,
editor: new Ext.form.field.ComboBox({
typeAhead: true,
//hideTrigger: true,
minChars: 1,
triggerAction: 'all',
selectOnTab: true,
valueField: 'Name',
displayField: 'Name',
store: storeItem,
lazyRender: true,
listClass: 'x-combo-list-small',
listeners: {
select: function (combo, record ,rrr) {
//При изменении выпадающего списка мы устанавливаем нове значение материала
newItemCangedId = record[0].get('Id');
}
},
})
}, {
header: 'Технология',
dataIndex: 'Technology',
width: 200,
editor: new Ext.form.field.ComboBox({
typeAhead: true,
triggerAction: 'all',
selectOnTab: true,
valueField: 'Name',
displayField: 'Name',
store: storeItem,
lazyRender: true,
listClass: 'x-combo-list-small',
listeners: {
select: function (combo, record ,rrr) {
//При изменении выпадающего списка мы устанавливаем нове значение технолоигг
newTechnologyCangedId = record[0].get('Id');
}
},
})
}, {
header: 'Создан',
dataIndex: 'CreatedDate',
width: 130,
renderer: formatDate,
}, {
header: 'Толщина',
dataIndex: 'Thickness',
width: 70,
align: 'right',
editor: {
xtype: 'numberfield',
allowBlank: false,
minValue: 0,
maxValue: 100000
}
}, {
header: 'Размер',
dataIndex: 'Size',
width: 70,
editor: {
allowBlank: false
}
}, {
header: 'Количество',
dataIndex: 'Cnt',
width: 70,
align: 'right',
editor: {
xtype: 'numberfield',
allowBlank: false,
minValue: 0,
maxValue: 100000
}
}, {
header: 'Статус',
dataIndex: 'Status',
width: 70,
align: 'right'
}, {
xtype: 'checkcolumn',
header: 'Изготовлено?',
dataIndex: 'IsMade',
width: 70,
stopSelection: false,
listeners: {
checkchange : function( editor , rowindex , isChecked){
//Вызывается если поставили флажок о получении
return;
}
}
}, {
xtype: 'checkcolumn',
header: 'Получено?',
dataIndex: 'IsReceived',
width: 70,
stopSelection: false,
listeners: {
checkchange : function( editor , rowindex , isChecked){
//Вызывается если поставили флажок о получении
return;
}
}
}, ],
selModel: {
selType: 'cellmodel'
},
renderTo: 'editor-grid',
width: '100%',
height: 300,
title: 'Заказа для поставщиков',
frame: true,
tbar: [{
text: 'Создать',
handler : function(){
// Create a model instance
var r = Ext.create('ProjectExternal', {
common: 'New Plant 1',
light: 'Mostly Shady',
price: 0,
availDate: Ext.Date.clearTime(new Date()),
indoor: false
});
store.insert(0, r);
cellEditing.startEditByPosition({row: 0, column: 0});
}
}],
plugins: [cellEditing]
});
storeItem.load();
// Загрузка данных в табличку,
//следует вызывать если данные загружаются аяксом
store.load({
callback: function(records, options, success){
//Вызываетс когда данные уже загружены
//combobox.getPicker().setLoading(false);
//elma.placeWait(true);
}
});
});
以上是关于javascript Табличкисвыпадающмимспискамии复选框#ExtJS的主要内容,如果未能解决你的问题,请参考以下文章
javascript Aвтоматическивыбираетпервуюопциюконфигураблпродукта,будутсразувидныопциивторогоселекта。自动
css Сделатькартинкучбипринаведениеплавночтобыонасталаопятьцветная
php Методыдляработыскоэффициентамимассивыпишемсключамикаквгетлисте
text КлассдляудобнойвыборкипользовательскихсвойстввБитриксиочисткаPROPERTY_ _VALUE
swift Затемяпопыталсявсе-такитупо,кодомвстиле“Пирамидапогибели”,получитьданныекартинкидля3-хподрядэл
scss Анимацияпульсациидляформы$ b $bИдляформыдобавляемперспективу,чтобы3Dбыло