- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 extjs 比较陌生。我正面临一个我无法解决的问题。我一直在网上搜索,但无法找到答案。感谢任何帮助。
在我的代码中,我试图为网格上显示的数据添加分页。该代码向服务器发出ajax 调用以获取数据。服务器发送的数据比需要的多。因此客户端提取响应文本 (json) 的部分,并将其显示在网格面板中。
网格显示数据很好。但是分页不起作用。它始终显示“第 0 页,共 0 页”和“无数据可显示”。
但是如果我用硬编码数据替换数据,并用硬编码数据创建存储和网格,分页就可以工作了。所以看起来我必须在创建商店和网格时已经有了数据。
这是简化的代码。使用 myStore1/myData1(硬编码数据)时,分页有效。将 myStore1 和 myData1 替换为从服务器检索数据后加载的 myStore2 和 myData2,分页不起作用。
我在网上看到的所有示例都涉及硬编码数据......感谢任何见解或指针。
Ext.Loader.setConfig({
enabled: true
});
Ext.Loader.setPath('Ext.ux', 'ext-4.1.1/examples/ux');
Ext.require('Ext.ux.data.PagingMemoryProxy');
Ext.application({
name: 'MS GUI',
launch: function() {
main();
}
});
function main() {
itemsPerPage = 2;
// hardcoded data
myData1 = [{'xxx':'a1','yyy':'b1','zzz':'c1'},
{'xxx':'a2','yyy':'b2','zzz':'c2'},
{'xxx':'a3','yyy':'b3','zzz':'c3'},
{'xxx':'a4','yyy':'b4','zzz':'c4'}];
// data to be loaded after the ajax call
myData2 = [];
// define model
Ext.define('QueryResultModel', {
extend: 'Ext.data.Model',
fields: [
{name: 'xxx', type: 'string'},
{name: 'yyy', type: 'string'},
{name: 'zzz', type: 'string'}
});
// define store1
myStore1 = Ext.create('Ext.data.Store', {
model: 'QueryResultModel',
storeId: 'QueryResultStore1',
autoLoad: false,
pageSize: itemsPerPage,
data: myData, // *** use hardcoded data here, and paging works ***
proxy : {
type: 'pagingmemory'
}
});
// define store2
myStore2 = Ext.create('Ext.data.Store', {
model: 'QueryResultMode',
storeId: 'QueryResultStore2',
autoLoad: false,
pageSize: itemsPerPage,
data: {}, // *** empty data here, and once data loaded, paging does not work ****
proxy : {
type: 'pagingmemory'
}
});
function createGrid(){
return Ext.create('Ext.grid.Panel', {
title: 'Query Result',
store: myStore1, // *** hardcoded data
columns: [
{text: 'XXX' dataIndex: 'xxx'},
{text: 'YYY' dataIndex: 'yyy'},
{text: 'ZZZ' dataIndex: 'zzz'}
],
dockedItem : [{
xtype: 'pagingtoolbar',
id: 'pagingBar_id',
store : myStore1, // *** use hardcoded data - paging works
displayInfo: true,
displayMsg: 'Displaying records {0} - {1} of {2}',
displayMsg: "No data to display"
}]
});
};
myContainer = Ext.create('Ext.container.Viewport', {
id: 'mainPanel_id',
layout: { type: 'border', padding: 5},
renderTo: Ext.getBody(),
items: [{
region: 'north',
title: 'Whatever Title Here',
collapsible: true,
autoHeight: true,
// *** other congig params here
},
{
region: 'west',
title: 'Query Input',
// other config params here
buttons : [
{
text : 'Submit',
id: 'submit_btn',
listeners : { click: function(){ sendQuery();}
},
{
text : 'Reset',
// other config parems here
}
]
},
{
region: 'center',
xtype: 'tabpanel',
autoScroll: true,
layout: 'fit',
items : [ createGrid()]
},
// other config for other regions here
]
});
function sendQuery() {
// code here to make the ajax call to the server and
// retrive the data, if success
// load response date into myData2
// note: the grid and pagingtoolbar are pointing to myStore2 (by replacing the myStore1)
myStore2.loadData(myData2, false);
// after the sendQuery() call, the paging tool bar still shows no data... while the grid is populated with
// none of the followings works:
// Ext.getCmp('pagingBar_id').doRefresh();
// Ext.getCmp('pagingBar_id').getStore().load();
// myStore2.load({params: {start:0}});
};
最佳答案
要将数据加载到内存代理上,您必须将数据分配给代理,然后调用 store.load();
见 https://fiddle.sencha.com/#fiddle/8ia
我的灵感来自 http://www.sencha.com/forum/showthread.php?267955-Load-data-into-Memory-Proxy-Store
var myStoreNoData = Ext.create('Ext.data.Store', {
model: 'QueryResultModel',
autoLoad: false,
pageSize: itemsPerPage,
proxy: {
type: 'pagingmemory'
}
});
function sendQuery() {
myStoreNoData.proxy.data = myData;
myStoreNoData.load();
}
关于extjs 4.1.1 - 本地数据网格中的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25166052/
我带着这么简单的问题来到这里,但找不到它......无论如何,你可以在下面看到代码。这是里面有项目的面板。我想要的是更改名称为“intIP”的文本字段的值,它位于面板内部,位于面板内部。我怎样才能做到
如何在 ExtJS 设计中显示面包屑功能。 我正在使用带边框布局的面板,我想在面板顶部设计面包屑功能 请寄给我一些 sample ..... 提前致谢 最佳答案 我想到了两个解决方案。 使用面板标题
你好 如何在 ExtJS 中设计嵌套网格 请提供一些示例(如何在 ExtJS GridPanel 中使用 RowExpander) 最佳答案 尝试这样的事情: //Create the Row Ex
我有类似的东西 Ext.define('HS.controller.Utility', { statics : { state : 'Oklahoma' } }); 现在我想
我有一列checkcolumn类型来启用切换 bool 值。我希望能够一次为该值切换所有行。理想情况下,我可以在checkcolumn header 中添加一个复选框,并监听更改。那可能吗? 我想指出
在我的 extjs 项目中,我有一些 panel我要展示的toolbar在 mouseEnter事件。这工作正常。但是当我用新的 html 更新面板时,mouseenter事件不起作用。 panel.
如何在 ExtJs Combo 中显示图标和显示字段。extjs 组合是否有任何扩展。请提供一些 sample 。 最佳答案 对于 ExtJS4,将带有 getInnerTpl 方法的 listCon
我有用于网格和柱状图的存储,但值是字符串形式的(服务器端格式化的数量,不能在客户端完成)。由于字符串格式的数量,网格没有被呈现。解决方案可能会使用网格和图表所需的数据类型制作单独的存储。但这是低效的方
我正在一个页面上有一个GridPanel的项目中工作。该面板可以显示任意数量的行,并且我设置了autoHeight属性,这将导致GridPanel扩展以适合行数。我现在想要一个水平滚动条,因为在某些分
我有一个网格,它允许用户通过编辑行来输入数字。我希望数字支持 4 位小数,但它只支持 2 位。我想出了如何显示 4 位小数,但它没有注册超过 2 位小数。 因此,如果用户输入 1000.1111,结果
我这里有以下网格: Ext.define('AM.view.user.List', { extend: 'Ext.grid.Panel', alias: 'widget.userlis
我正在将我的应用程序从ExtJs 3迁移到4版本。 我的formPanel上有几个组合框,以前我用过hiddenName 以及所有的stuff提交valueField而不是displayField。
我在一个面板中创建了多个项目。现在我想以“适合”布局显示此面板。我不想修复该面板的高度和宽度。我知道“适合”布局只允许显示一项。 这里可以使用“适合”布局吗?或者有什么替代方案可以实现这一目标吗? 谢
我需要将数据库值加载到组合框中。我不明白,为什么值没有加载到组合框中。通过 firebug,打印出 console.log 值。这是我的组合框代码, var groups = new Ext.data
这是将筛选器动态添加到gridpanel底部工具栏的正确语法吗? this.Grid.getBottomToolbar().plugins=[filters]; 当我这样做时没有错误。但是,它的行为并
我正在使用ExtJS v4.0。 在客户端和服务器端之间维护日期格式确实令人困惑。 用户需要自己的输入格式,但是服务器通常要求提交为一种标准格式。 它应该是ExtJS中的内置实现,但不是。 我已经阅读
我的问题对你来说很容易,但我负担不起..我从行中获取数据并显示在其他面板的字段中我的目标是编辑这些数据并在网格中显示编辑后的数据,请给我一些建议,我知道它需要 commit() 函数但是.. 我的代码
我是 ExtJS 的新手。我遵循了一个教程,目的是在网格上创建分页。代码很简单,我发现它很可疑......结果,分页工具栏在那里,但在第一次加载时仍然显示所有数据。这是我在 View 文件中的代码:
听说EXTJS是一个独立于浏览器的javascript库。 extjs 如何使自己独立于浏览器?当我打开库类时,我没有看到任何代码: 如果(IE)//这样做;else if (FF)//做其他事情;
我有一个类的实例(例如 Ext.data.Model)myRecord 并且需要调用它的静态方法之一(例如 getFields())。我该怎么做? 最佳答案 您还可以使用 self获取类的属性: my
我是一名优秀的程序员,十分优秀!