2014-02-24 116 views
0

這是我的線程,我在這裏發佈了分頁的實際問題。 你能幫助我從這個線程 煎茶論壇 sencha forum Ext Paging problem with EXt direct Grid panel分機Js分頁不能與ExtDirect網格面板工作

First pageSecond page

+0

你有你的服務器端代碼來處理分頁嗎?當你點擊下一步時,網格商店被稱爲啓動和限制參數,你需要使用該值從服務器返回你的結果 – objectone

+0

是的,當我應用它時,我得到了開始和限制,我在第一次加載時只獲得了5個值。下一頁被禁用 –

+0

您還需要獲取totalProperty,即您想要用於分頁的記錄總數。您返回的結果應該包含總記錄數,例如47,並且需要將其映射到代理閱讀器totalProperty。讓我知道如果你需要一個例子 – objectone

回答

0

下面是你的存儲和抽樣結果如何應該是如此,作爲您需要分頁工程樣品。

商店應該如下

var myStore = Ext.create('Ext.data.Store', { 
fields: [ 
    {name: 'firstName', type: 'string'}, 
    {name: 'lastName', type: 'string'} 
], 
proxy: { 
    type: 'ajax', 
    url: '/users.json', 
    reader: { 
     type: 'json', 
     root: 'records', 
     totalProperty: 'recordCount', 
     successProperty: 'success' 
    } 
} 
}); 

,並從服務器的結果應該是這樣

{ 
    recordCount: 63, 
    records: [ 
    { 
    id: 944, 
    firstName: "Shannon", 
    lastName: "Joy" 
    }, 
    { 
    id: 1819, 
    firstName: "Remi" 
    lastName: "Lucas" 
    }, 
    ....... 
} 
1

最後我從論壇上回答

我店裏的js

var store = Ext.create('Ext.data.Store', { 
     model : 'Users', 
     remoteSort : true, 
     autoLoad : true, 
     pageSize: 5, // items per page 

     sorters : [{ 
      property : 'name', 
      direction : 'ASC' 
     }], 

     proxy : { 
      type : 'direct', 
      directFn : 'Users.showAllUsers', 
      reader: { 

        root: 'users' 

      } 

     } 
}); 

我的PHP函數

function showAllUsers($params) 
{ 
    $sort = $params->sort[0]; 
    $field = $sort->property; 
    $direction = $sort->direction; 
    $start = $params->start; 
    $end = $params->limit; 

    ($direction == 'ASC' ? 'ASC' : 'DESC'); 

    $dbh = Dbconfig::dbconnect(); 

    $stmt = $dbh->prepare("SELECT count(*) FROM users"); 
    $stmt->execute(); 
    $number_of_rows = $stmt->fetchColumn(); 

    $sth = $dbh->prepare("SELECT * FROM users ORDER BY name $direction LIMIT $start,$end"); 
    $sth->execute(); 
    $dataAll = $sth->fetchAll(); 


    $data = array(
      "success" => mysql_errno() == 0, 
      "total" => $number_of_rows, 
      "users" => $dataAll 
    ); 

    return $data; 
}