Есть Ext.grid.Panel. Как в store передать параметр?
Доброе утро!
Есть Ext.grid.Panel. Как в store передать в качестве параметра дату из календаря dateMenu с формы? вот код:
var gridDisloc = Ext.define('gridDisloc',
{
extend: 'Ext.grid.Panel',
alias: 'widget.tablegrid',
requires:['*'],
initComponent: function() {
var pointer = this;
var fileWindow = new FileForm;
var selectedToEdit = null;
var editAction = Ext.create('Ext.Action',
{
icon: 'resources/themes/images/default/dd/drop-add.gif', // Use a URL in the icon config
text: 'Редактировать запись',
handler: function(widget, event) {
selectedToEdit = pointer.getSelectionModel().getSelection()[0];
var editWindow = new EditForm (selectedToEdit);
editWindow.display();
}
}
);
var dateMenu = Ext.create('Ext.menu.DatePicker',
{
handler: function(dp, date) {
storedislocdt.load();
}
}
);
var contextMenu = Ext.create('Ext.menu.Menu',
{
items:[editAction]
}
);
var filterFrom = Ext.create('Ext.form.field.Date',
{
xtype: 'datefield',
id: 'From',
name: 'From'
}
);
var d = new Date();
var day = d.getDate();
var month = d.getMonth() + 1;
var year = d.getFullYear();
filterFrom = year + "-" + month + "-" + day;
Ext.apply(this,
{
columnLines: true,
editable: true,
store: storedislocdt,
title: 'Дислокации',
viewConfig: {
stripeRows: true,
listeners: {
itemcontextmenu: function(view, rec, node, index, e) {
e.stopEvent();
contextMenu.showAt(e.getXY());
return false;
}
}
},
columns:[
{
text: '#',
flex: 1,
sortable: true,
dataIndex: 'id',
width: 4
},
{
text: '№ Вагона',
flex: 1,
sortable: true,
dataIndex: 'Vagon'
},
{
text: 'Вагоновладелец',
flex: 1,
sortable: true,
dataIndex: 'IDOwner'
}
],
height: 900,
region: 'center',
layout: 'fit',
tbar:[
{
text: 'Выберите дату',
iconCls: 'calendar',
menu: dateMenu
},
{
text: 'Выборка',
tooltip: 'Выборка',
iconCls: 'add',
handler: function() {
searchBYDATE();
pointer.hide();
}
}, filterFrom
]
}
);
this.callParent();
function searchBYDATE() {
Ext.Ajax.request(
{
waitMsg: 'Пожалуйста, подождите',
url: 'names.php',
params: {
task: 'LISTINGDISLOCDT',
DT: dateMenu.getValue()
},
success: function(response) {
var result = eval(response.responseText);
switch (result) {
case 1:
Ext.MessageBox.alert('Успех', 'Запись добавлена');
//storestations.load();
pointer.hide();
break;
case 2:
Ext.MessageBox.alert('Успех', 'Запись обновлена');
//storestations.load();
pointer.hide();
break;
default:
Ext.MessageBox.alert('Упс', 'Возникла ошибка'+result);
}
},
failure: function (response) {
var result = response.responseText;
Ext.MessageBox.alert('Упс', 'Ошибка подключения к базе');
}
}
)
};
},
onSync: function() {
this.storedislocdt.sync();
}
}
);
|
Цитата:
|
Ex_Soft,
еще можно так:
storedislocdt.getProxy().extraParams = { paramName: paramValue };
storedislocdt.load();
Разница здесь есть небольшая. params как единовременные параметры, а extraParams запоминается в Proxy. |
Попробовал. не передает параметр
обновил следующий код:
var dateMenu = Ext.create('Ext.menu.DatePicker',
{
handler: function(dp, date) {
storedislocdt.load({
params: {
DT: '2012-03-28'
}
})
}
}
);
в серверной части в коде переменная DT пустая серверная часть:
function getListDislocDT() {
$dat = $_POST['DT'];
$query = "SELECT * FROM main WHERE DTImport<'".$dat."'";
$result = mysql_query($query);
$nbrows = mysql_num_rows($result);
if($nbrows>0){
while($rec = mysql_fetch_assoc($result)){
$i++;
$arr[] = $rec;
}
$jsonresult = json_encode($arr);
echo '{"results":'.$jsonresult.'}';
} else {
echo '{"results":'.$query.'}';
}
}
|
Цитата:
|
tigeralhimik,
var_dump($_POST, $_GET); или в консоль загляните, не может быть чтоб параметры не передавались... |
Цитата:
|
Передал параметры через storedislocdt.proxy.extraParams, как и советовали!
Ex_Soft, nekto_O, спасибо за помощь! |
| Часовой пояс GMT +3, время: 15:33. |