extjs5 gridpanel4.2 使用Ext.grid.panel显示ajax请求数据无法显示??

在2.X的版本中实现过,代码
Ext.Ajax.request({
method : 'POST',
params : param,
timeout : 60000,
success : function(form, action) {
var result = Ext.util.JSON.decode(form.responseText);
var gridPanelStore = grid.getStore();
gridPanelStore.proxy = new Ext.data.PagingMemoryProxy(result);
gridPanelStore.load({
params : {
start : 0,
limit : 10
delay : 750
failure : function(form, action) {
gridPanelStore.proxy = new Ext.data.PagingMemoryProxy(result);在2.X中主要代码是这里,通过Ext.data.PagingMemoryProxy分页一次性读取数据,这样翻页就不要重新调用数据库了。但在4.X版本中找不到这个东西,急求解决方案!
Ext4可以使用Ext.data.proxy.Memory这个类
Ext.define('User', {
extend: 'Ext.data.Model',
{name: 'id',
type: 'int'},
{name: 'name',
type: 'string'},
{name: 'phone', type: 'string', mapping: 'phoneNumber'}
var data = {
name: 'Ed Spencer',
phoneNumber: '555 1234'
name: 'Abe Elias',
phoneNumber: '666 1234'
var store = Ext.create('Ext.data.Store', {
autoLoad: true,
model: 'User',
data : data,
type: 'memory',
type: 'json',
root: 'users'
已解决问题
未解决问题初学Extjs,关于gridPanel不显示从Action中接收到的json数据问题_百度知道
初学Extjs,关于gridPanel不显示从Action中接收到的json数据问题
简单的Actionpublic class jsonAction { private S private S private D public String execute(){
name=&mike&;
city=&LA&;
date=new Date();
return &success&; } public String getName() {
} public void setName(String name) {
this.name = } public String getCity() {
} public void setCity(String city) {
this.city = } public Date getDate() {
} public void setDate(Date date) {
this.date = } }struts.xml配置文件&struts&
&package name=&default& namespace=&/& extends=&json-default&&
&action name=&json& class=&action.jsonAction&&
&result name=&success& type=&json&&&/result&
&/action&
&/package&&/struts&Extjs代码:&div id='d1'&&/div& &script type=&text/javascript&&
Ext.onReady(function(){
var rd=new Ext.data.哗丹糕柑蕹纺革尸宫建JsonReader({
{name:'city' ,mapping:'city'},
{name:'date',mapping:'date'},
{name:'name',mapping:'name'}
var store=new Ext.data.JsonStore({
autoLoad:true,
proxy:new Ext.data.HttpProxy({
url:'json.action',
method:'POST'
var grid=new Ext.grid.GridPanel({
store:store,
{header:'城市',width:175,dataIndex:'city'},
{header:'日期',width:175,dataIndex:'date'},
{header:'姓名',width:175,dataIndex:'name'}
height:300,
width:600,
renderTo:'d1'
}) &/script&
提问者采纳
是 jsonObject
里面有jsonArray
其中一个的名字是你list 的名字
就是前台root的名字 要对应
还有一个就是
totalproterty
:是json里面另外一个jsonArray的 名字 是做分页传 记录总数用的store要根据后台里面存的时候的名字去取
要不取不到看我的 function NewGridStore(iUrl,iRoot,iTotalProperty,iFields){//获取表store var store=new Ext.data.JsonStore( {
root:iRoot,
method:'post',
totalProperty:iTotalProperty,
fields:iFields }); }我这是封装了的
不过你应该能看懂 返回一个store后台List list = testservice.QueryByPagingInfoList(start, limit);
JSONObject json = new JSONObject();
JSONArray jsonMembers = new JSONArray();
for (int i = 0; i & list.size(); i++) {
Publicity publicity = (Publicity) list.get(i);
JSONObject member = new JSONObject();
member.put(&id&, publicity.getId());
member.put(&danwei&, publicity.getDanwei());
member.put(&jingbanren&, publicity.getJingbanren());
member.put(&lianxidianhua&, publicity.getLianxidianhua());
member.put(&liyou&, publicity.getLiyou());
member.put(&kaishishijian&, publicity.getKaishishijian());
member.put(&jieshushijian&, publicity.getJie哗丹糕柑蕹纺革尸宫建shushijian());
member.put(&shuliang&, publicity.getShuliang());
member.put(&guige&, publicity.getGuige());
member.put(&neirong&, publicity.getNeirong());
member.put(&quyu&, publicity.getQuyu());
jsonMembers.add(member);
json.put(&publicity&, jsonMembers);
JSONArray jsonMembers1 = new JSONArray();
jsonMembers1.add(count);
json.put(&totalcount&, count);
out.Writer(json);
其他类似问题
为您推荐:
其他2条回答
你是想用ognl的方式来取值吗? 这个好像应该不可以吧, 如果你想在前台渠道action中的值,需要往前台写值; 例如; out.print(&{name:'jack',age:20}&); out.flush(); 希望可以帮助到您 .
public class jsonAction extends ActionSupport先确认确实跳转到Action
确实跳转,并且firebug已经确认接收到了 json字符串,但是就是不再前台显示
new Ext.data.JsonReader( {
root : root,
}, Ext.data.Record.create( [ {
name : 'id'
name : 'xname'
}])),是不是少了个root
json的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁extJS提交form表单数据的方式: Ext.Ajax.request,form.submit,getEl().dom.submit() - ExtJS频道_ExtJS3_ExtJS4 - _专业优秀的程序员网上知识家园
extJS提交form表单数据的方式: Ext.Ajax.request,form.submit,getEl().dom.submit()
08:46:34&&&来源:&&&评论: 点击:
extJS提交服务器主要有这样几种方式: Ext.Ajax.request,form.submit,getEl().dom.submit(),以下是详细介绍:
1、EXT的form表单ajax提交(默认提交方式)
相对单独的ajax提交来说优点在于能省略写参数数组,将按钮添加单击事件,执行以下方法
function loginSubmit(item) {
if (validatorForm()) {
// 登录时将登录按钮设为disabled,防止重复提交
this.disabled =
// 第一个参数可以为submit和load
formPanl.form.doAction('submit', {
url : 'login.do?method=login',
method : 'post',
// 如果有表单以外的其它参数,可以加在这里。
//我这里暂时为空,也可以将下面这句省略
params : '',
// 第一个参数是传入该表单,
//第二个是Ext.form.Action对象用来取得服务器端传过来的json数据
success : function(form, action) {
Ext.Msg.alert('操作', action.result.data);
this.disabled =
failure : function(form, action) {
Ext.Msg.alert('警告', '用户名或密码错误!');
// 登录失败,将提交按钮重新设为可操作
this.disabled =
this.disabled =
2、EXT的form表单直接submit提交
var fp = Ext.create('Ext.form.Panel', {
buttons: [{
text: 'Save',
formBind: true,
handler: function(){
if(fp.getForm().isValid()){
fp.getForm().submit({
url: 'form-submit.php',
waitMsg: '请稍后,正在提交数据...',
success: function(form, action){
Ext.Msg.alert('操作', action.result.data);
failure: function(form, action){
if (action.failureType === Ext.form.action.Action.CONNECT_FAILURE) {
Ext.Msg.alert('错误','Status:'+action.response.status+': '+
action.response.statusText);
if (action.failureType === Ext.form.action.Action.SERVER_INVALID){
Ext.Msg.alert('Invalid', action.result.errormsg);
text: 'Reset',
handler: function(){
fp.getForm().reset();
3、Extjs form表单的非ajax提交
在表单需加入下列代码 :
//实现非AJAX提交表单一定要加下面的两行
// onSubmit : Ext.emptyFn, submit : function() {
//再次设定action的地址
this.getEl().dom.action ='login.do?userName=login';
this.getEl().dom.method = 'post';
//提交submit
this.getEl().dom.submit();
4、Extjs form表单的Ext.Ajax.request提交
Ext.Ajax.request({
//请求地址
url: 'login.do',
method:'post',
//提交参数组
userName:Ext.get('userName').dom.value,
userPassword:Ext.get('userPassword').dom.value
//成功时回调
success: function(response, options) {
//获取响应的json字符串
var json = Ext.util.JSON.decode(response.responseText);
if(json.success==true){
Ext.Msg.alert('恭喜','您已成功登录!');
Ext.Msg.alert('失败','登录失败,请重新登录');
相关热词搜索:
上一篇:下一篇:
相关阅读:
总排行本月排行程序员
最新IT新闻extjs EditorGridPanel自动赋值无法显示的问题,extjs高手请进_百度知道
extjs EditorGridPanel自动赋值无法显示的问题,extjs高手请进
望高手指教:}]):function(){var selModel =min?&quot:2L&#47,STEL; for (var i = 0.hasSelection()) {Ext!&quot.检测方法&quot,当我在这列上点下去;);if (,15min,点数据生成的时候.confirm(&};) { var s =grid!.getSelectionModel().data:function(){var p = new tp({,15min:[{text, r.create([{新增& store,120min'TWA!;确认&quot.TextField({ allowBlank , editor .ColumnModel([{/;数据生成&
fm,, p):300;} else {Ext,STEL;,就出现了可编辑框:&testmethod&quot,我怎么才能在点数据生成的时候看到的是TWA,120min&#39,/TWA, &.startEditing(0; i++) {
var fm = r,看到grid里的testmethod列现实的还是aaa!.Msg:&#39,请高手指点.getSelectionModel(),function(btn) { if (btn == &quot,
id.stopEditing();minvar cm = new E;你确定要为已选择的记录生成数据吗!;min.getSelections();,
align !:2L&#47:1L&#47,STEL:&}]现在的状态就是当我选中一条数据;,120min:2L&#47: false})var tp = new Ext.insert(0.EditorGridPanel({tbar: &quot:&quot, &quot,{text:&quot!:1L&#47,grid,15!;center& r = s[i],里面存的却是'var record.alert(&testmethod&quot, 1),警告&quot.testmethod='}):&quot:&var grid = new E;请选择要修改的行;aaa&quot!selModel,mapping,yes&,
dataIndex:&quot:': new Ext.test111'string&quot.form.Record:1L/testmethod&#39.data.M;hidden
/zhidao/pic/item//zhidao/wh%3D450%2C600/sign=9f34f621a8d3fd1f365caa3e057edda144ad3a20cf431ad853a://f.jpg" esrc="http.baidu.baidu://f.hiphotos.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="/zhidao/wh%3D600%2C800/sign=9db549e7bc3eb1354492bfbd962e84eb/902397dda144ad3a20cf431ad853a.hiphotos://f<a href="http
提问者采纳
grid.getView().refresh()~~~~~~~~~~
提问者评价
其他类似问题
为您推荐:
extjs的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 extjs gridpanel 排序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信