在Ext Grid中进行分页

时间:2015-02-16 09:59:58

标签: javascript php json extjs pagination

您好我正在使用Ext Js版本4.1.8,我想在我的extjs网格上添加分页。

我一直在使用

Ext.create('Ext.data.Store', {
    model: 'List',    
    proxy:{
       type: 'ajax',
       api:{
           read:'getJson.php',
       },
       extraParams:{
           PRKEY : selectedProjId
       },
    },
    reader:{
       type: 'json',
       root: 'data',    
    }
});

这样工作正常,但如果我在我的php文件中更改我的json格式并将根类型更改为其他字符串,例如' users'我没有看到任何数据

这是我在getJson.php中的json创建代码

//in a loop
$aNode = array( 
    "Name" => "My Name",
    "ID"   => "123");
array_push($nodeArr, $aNode);
//end of loop

$json = new Services_JSON;
echo $json->encode($nodeArr);

这里是我要运行的php代码

//in a loop
$aNode = array( 
"Name" => "My Name",
    "ID"   => "123");
array_push($nodeArr, $aNode);
//end of loop

$json = new Services_JSON;
$jsonResult = array(
    'success' => "true",
    'users' => $nodeArr
);
echo $json->encode($jsonResult );

这是新商店代码

Ext.create('Ext.data.Store', {
    model: 'List',  
    proxy:{
        type: 'ajax',
        api:{
            read:'getJson.php',
        },
        extraParams:{
            PRKEY :selectedProjId
        },
    },
    reader:{
        type: 'json',
        root: 'users'
    }
});

请帮助,以便我可以在我的商店的读者中添加totalProperty并执行分页。

2 个答案:

答案 0 :(得分:0)

在成功附近添加totalProperty的值,例如:

$total = get_total_number_of_records();
$jsonResult = array(
    'success' => "true",
    'total' => $total
    'users' => $nodeArr
);

除了start之外,服务器端还必须遵守已发送的limittotal参数,并且必须从limit开始仅返回start条记录数量,不是全部来自数据库。

答案 1 :(得分:0)

啊,怎么想出来的人。 我在代理块之外使用'reader'。我更改了它并将其添加到代理中并且工作正常。

干杯!这是它的工作原理

Ext.create('Ext.data.Store', {
    model: 'List',  
    proxy:{
        type: 'ajax',
        api:{
            read:'getJson.php',
        },
        extraParams:{
            PRKEY :selectedProjId
        },
        reader:{
            type: 'json',
            root: 'users'
        }
    }        
});