【发布时间】:2015-12-12 23:37:13
【问题描述】:
您好,我正在尝试设置我的页面大小,但它无法正常工作:/ 我在第二页得到与第一页相同的结果。分页栏显示 1-25 个结果,但 27 个显示在第二页 26-27 但与第一页中的结果相同。我从 Sql select ... select * from example_table 获取数据我知道我可以限制 25 但这不是正确的解决方案,因为如果我这样做,我无法从 select 中获取全部数据,这种方式!为什么我不能正确显示?谢谢你!
Ext.define('Shopware.apps.UnSqlReader.controller.Main', {
extend: 'Ext.app.Controller',
init: function () {
var me = this;
me.mainWindow = me.getView('window.Window').create({}).show();
me.control({
'main-window-view': {
onSqlChange: me.onSqlChange
}
})
},
onSqlChange: function (gridPanel, value) {
var me = this;
Ext.Ajax.request({
url: '{url action=getColumns}',
params: {
fileName: value
},
success: function (response) {
var responseObj = JSON.parse(response.responseText),
grid = me.mainWindow.grid,
pagingbar = me.mainWindow.pagingBar,
columns = new Array(),
gridColums = new Array();
responseObj.columns.forEach(function (item) {
columns.push({
name: item,
type: 'string',
});
gridColums.push({
text: Ext.String.capitalize(item),
dataIndex: item,
renderer: function (val, meta) {
meta.tdAttr = 'data-qtip="' + val.replace(/['"]+/g, '"').replace(/</g, '<').replace(/>/g, '>') + '"';
return val;
}
});
});
var SqlResult = Ext.create('Ext.data.Store', {
fields: columns,
remoteFilter: true,
pageSize: 25,
proxy: {
type: 'ajax',
url: '{url action=getSqlDetails}',
reader: {
type: 'json',
root: 'data'
}
},
});
SqlResult.getProxy().extraParams.fileName = value;
SqlResult.load();
grid.reconfigure(SqlResult, gridColums);
pagingbar.bindStore(SqlResult);
grid.show();
}
});
}
});
这里是完整的 php 函数
public function getSqlDetailsAction() {
$fileName = $this->Request()->getParam('fileName');
$pluginFolder = dirname(dirname(__DIR__));
$sqlFolder = $pluginFolder . '/SqlFiles/';
$filePath = $sqlFolder . $fileName;
$sql = file_get_contents($filePath);
$sqlResultList = Shopware()->Db()->query($sql);
$columns = array();
for ($i = 0; $i < $sqlResultList->columnCount(); $i++) {
$columns[$i] = $sqlResultList->getColumnMeta($i)["name"];
}
$this->View()->success = true;
$this->View()->columns = $columns;
$this->View()->data = $sqlResultList->fetchAll();
}
}`
如果有人可以帮助实现偏移量,那就太好了:data = $sqlResultList->
【问题讨论】: