相关文章
更多最近更新
更多extjs 的gridPanel通过JsonStore取不到值
2019-03-25 13:50|来源: 网路
这是显示部分
var store=new Ext.data.JsonStore({
proxy: new Ext.data.HttpProxy({
url: 'getUserData.jsp'
}),
//url:'http://design/getUserData.jsp',
reader: new Ext.data.JsonReader(
{fields:['username','usergroup']}
)
/* fields:[
{name:'username'},
{name:'usergroup'}]
*/
});
store.load();
var gridPanel=new Ext.grid.GridPanel({
store:store,
columns:[
/*{
header:'用户ID',
dataIndex:'id',
width:100
},*/
{
header:'用户名',
dataIndex:'username',
width:160
},{
header:'用户组',
dataIndex:'usergroup',
width:160
}],
viewConfig:{
sortAscText:'正序排列',
sortDescText:'逆序排列',
forceFit:true
},
width:600,
height:400,
frame:true,
//title:'Framed with Checkbox Selection and Horizontal Scrolling',
iconCls:'icon-grid'
});
下面是数据,读取的页面的内容没有html,head和body标签,只有
[
{"username":"aaa","usergroup":"bbb"},
{"username":"bbb","usergroup":"111"}
]
我试过直接在store用data属性直接给值,显示正常,但是一旦到网页去取,就取不到值
现在死活拿不到值,试过很多方法了
问题补充:自己后来又试了试,偶然试出来了,JsonReader,HttpProxy好像不用也行,最后,拿到值的代码为
var store=new Ext.data.JsonStore({
url:'getUserData.jsp',
fields:['id','username','usergroup']
});
store.load();
其他都没动,最初试的时候可能将数据页面中的双引号写成了单引号(因为在extjs里,属性的单双引号是通用的,我以为这里也一样,就没注意),可能是这里出的问题吧。
var store=new Ext.data.JsonStore({
proxy: new Ext.data.HttpProxy({
url: 'getUserData.jsp'
}),
//url:'http://design/getUserData.jsp',
reader: new Ext.data.JsonReader(
{fields:['username','usergroup']}
)
/* fields:[
{name:'username'},
{name:'usergroup'}]
*/
});
store.load();
var gridPanel=new Ext.grid.GridPanel({
store:store,
columns:[
/*{
header:'用户ID',
dataIndex:'id',
width:100
},*/
{
header:'用户名',
dataIndex:'username',
width:160
},{
header:'用户组',
dataIndex:'usergroup',
width:160
}],
viewConfig:{
sortAscText:'正序排列',
sortDescText:'逆序排列',
forceFit:true
},
width:600,
height:400,
frame:true,
//title:'Framed with Checkbox Selection and Horizontal Scrolling',
iconCls:'icon-grid'
});
下面是数据,读取的页面的内容没有html,head和body标签,只有
[
{"username":"aaa","usergroup":"bbb"},
{"username":"bbb","usergroup":"111"}
]
我试过直接在store用data属性直接给值,显示正常,但是一旦到网页去取,就取不到值
现在死活拿不到值,试过很多方法了
问题补充:自己后来又试了试,偶然试出来了,JsonReader,HttpProxy好像不用也行,最后,拿到值的代码为
var store=new Ext.data.JsonStore({
url:'getUserData.jsp',
fields:['id','username','usergroup']
});
store.load();
其他都没动,最初试的时候可能将数据页面中的双引号写成了单引号(因为在extjs里,属性的单双引号是通用的,我以为这里也一样,就没注意),可能是这里出的问题吧。
相关问答
更多-
EXTJS ||(EXTJS || Need help in implementing the Checkbox Selection Model in the GridPanel)[2022-03-24]
这就是我如何解决这个问题: 在复选框列旁边放置一个带有两个按钮的actioncolumn 。 给actioncolumn一个固定的宽度。 为两个项目(按钮)设置自定义样式,如选定的节目。 使用css设置按钮样式以仅显示所选行。 columns: [{ xtype: 'actioncolumn', width: 40, items: [{ iconCls: 'onselect-show', ... CSS: .onselect-show {display: none; ... -
如果你找不到合适的配置选项,事后调用gridPanel.getTopToolbar().hide()应该可以做到。 If you can't find a suitable config option, calling gridPanel.getTopToolbar().hide() afterwards should do the trick.
-
你拥有处理器参数所需的全部内容 handler: function(grid, rowIndex, colIndex) { var row = grid.getStore().getAt(rowIndex); console.log(row); } 上面的代码会给你一行,所以你只需要选择所需的单元格。 如果您在点击操作列之前强制选择,您也可以使用下面的代码。 但是请注意,默认情况下,单击动作列不会触发选择,因此在单击动作列时可以选择完全 ...
-
getValue()方法有点棘手,它返回的对象具有取决于结果集的可变结构,导致代码中的问题。 但是, getChecked()方法更直接,我将在解决方案中使用它。 然后,我们使用filterBy,因为在这种情况下它更有用。 在这里你有解决方案(内嵌评论): change: { fn: function () { var checkedBoxes = this.getChecked(), //Array of checked checkboxes selecte ...
-
ExtJS GridPanel Row单击(ExtJS GridPanel Row Click)[2021-06-01]
用这个: grid.on('rowclick', function(grid, rowIndex, columnIndex, e) { console.log(grid, rowIndex, columnIndex, e); }, this); 编辑:有关网格相关问题,请参阅ExtJS网格常见问题部分 Use this: grid.on('rowclick', function(grid, rowInd ... -
Extjs + jQuery在一起(Extjs + jQuery together)[2023-06-21]
Ext通过textfield配置内置验证(例如allowBlank: false )和其他验证器函数(所有VTypes函数),以及用于提供自定义验证的钩子。 不知道为什么你需要为此添加jQuery,也许你可以更具体一些? 但假设您确实需要同时使用两者,您应该能够使用Ext或jQuery的DOM就绪函数作为入口点(而不是两者),然后在其中编写所需的任何代码,假设两个库都已正确引用和初始化。 假设每个库的DOM就绪函数都像宣传的那样工作,那么当调用任何一个DOM时,DOM应该是可用的,这无论如何都是使用这些方法 ... -
由于ExtJS 4.1.3不再返回GridView您必须解决此问题。 看看: Sencha论坛 - >获取gridview行元素 在我看来,它是一个丑陋的解决方案,但它没有得到很多关注.. Since ExtJS 4.1.3 no longer returns a GridView you have to work around this. Take a look at: Sencha Forum --> Getting gridview row element In my opinion its a ug ...
-
我在商店加载方面遇到了同样的问题。 为了解决这个问题,我用Ext.data.Store替换了Ext.data.JsonStore。 其他参数是相同的。 所以这是我自动加载的ExtJS商店的例子: this.datesStore = new Ext.data.Store({ id: 'datestore', root: 'dates', autoLoad: true, ...
-
ExtJS商店只是一组数据。 没有限制设置,除非它有自定义检查... 你用的是什么版本? 内容是通过服务器保存/获取的吗? 也许限制是在那里实施的? 你能告诉我们一些代码吗? 您可以通过在stores add方法中设置断点来尝试调试。 (他到那儿了吗?检查堆栈痕迹......) The ExtJS store is just a collection of data. There is no limit set unless it has a custom check... What version are ...
-
当存储的load事件被触发时,从JSON响应创建的JavaScript对象在yourStore.reader.jsonData可用。 例如: yourStore.on('load', function(firstStore) { var data = firstStore.reader.jsonData; otherStore.loadData(data); thirdStore.loadData(data); } 编辑:澄清,每个商店将需要一个单独的root属性(你已经在做),所以他们 ...