带有JSON数据的分页工具栏-Ext JS
我正在尝试在我的应用程序中使用分页网格和工具栏 目前我有一个Ajax请求,它包含我的所有逻辑(发出请求、解码响应、创建模型/将其转换到存储,并适当地返回字段): 我的网格上有一个带有JSON数据的分页工具栏-Ext JS,json,extjs,Json,Extjs,我正在尝试在我的应用程序中使用分页网格和工具栏 目前我有一个Ajax请求,它包含我的所有逻辑(发出请求、解码响应、创建模型/将其转换到存储,并适当地返回字段): 我的网格上有一个xtype:'pagingtoolbar',使用store:newstore,但它似乎没有读取任何数据(即“没有要显示的项目”): 在我的代码中,我没有定义代理(也许这是个问题?)无论如何,关于如何让它工作,有什么想法吗?商店使用什么样的代理?那是JSON吗?如何添加行?您是否手动添加它们,如果是,如何添加?我实际上没有
xtype:'pagingtoolbar'
,使用store:newstore
,但它似乎没有读取任何数据(即“没有要显示的项目”):
在我的代码中,我没有定义代理(也许这是个问题?)无论如何,关于如何让它工作,有什么想法吗?商店使用什么样的代理?那是JSON吗?如何添加行?您是否手动添加它们,如果是,如何添加?我实际上没有指定任何代理,我的请求读取URL并向其发布我的jsonData,返回一个响应,然后进行解码。我将更新我的问题以反映这一点。您的网格中是否使用了相同的
新闻商店
?它必须是grid和pagingtoolbar中的同一个存储。是的,它们使用的是应该工作的同一个存储。请创建一个简化的提琴(使用button.onCLick()而不是发出POST请求)来确定确切的问题。
var request = Ext.Ajax.request({
url : 'MCApp',
jsonData : searchquery, //String created from user input
success : function(response) {
var mainresponse = response.responseText;
var decoded = Ext.decode( mainresponse );
for( var i=0; i < decoded.elements.length; i++ ) {
var element = decoded.elements[ i ].element;
var element_name = element.name;
var model = {};
// loop over attributes
for( var x=0; x < element.attributes.length; x++ ) {
var attribute = element.attributes[ x ];
model[ attribute.attrname ] = attribute.attrvalue;
}
// implicitly cast data as Model
newstore.add( model );
} //etc.
var newstore = Ext.create('Ext.data.Store', {
autoLoad : true,
pageSize : 15,
fields: [
{name : 'tech', type : 'auto'},
{name :'id', type : 'auto'},
{name :'name', type : 'auto'}
//etc.
]
});
var grid = Ext.define('AM.view.metadata.ResponseList' ,{
extend : 'Ext.grid.Panel',
alias : 'widget.responselist',
id : 'reslist',
//...
dockedItems :[
xtype: 'toolbar',
dock: 'bottom',
items: [
{ xtype: 'pagingtoolbar',store: newstore, ...