2016-10-04 5 views
0

Я использую сетку, чтобы показать данные, которые работают отлично, но теперь я хочу добавить пейджинг в сетку. Я добавил скриншот пейджинга, который я хочу применить, как есть.Как добавить пейджинг в сетку Extjs

Grid Paging Screenshot

Я не могу использовать подкачку на моей сетке. Пожалуйста, помогите мне исправить эту проблему. Я приложил свой полный код ниже

<script type="text/javascript"> 

Ext.define('User', { 
      extend: 'Ext.data.Model', 
      fields: ['name', 'email', 'age'] 

     }); 

    Ext.define('UserStore', { 
     extend: "Ext.data.Store", 
     model: 'User', 


     data: [ 
      { name: 'Test1', email: '[email protected]', age: 19 }, 
      { name: 'Test2', email: '[email protected]', age: 23 }, 
      { name: 'Test3', email: '[email protected]', age: 45 }, 
      { name: 'Test4', email: '[email protected]', age: 32 }, 
      { name: 'Test5', email: '[email protected]', age: 22 }, 
       { name: 'Test6', email: '[email protected]', age: 23 }, 
       { name: 'Abh', email: '[email protected]', age: 22 }, 
       { name: 'Test7', email: '[email protected]', age: 29 }, 
       { name: 'Gt', email: '[email protected]', age: 24 }, 
       { name: 'Mg', email: '[email protected]', age: 24 }, 


     ] 
    }); 
    var activityStore = Ext.create('UserStore'); 
    activityStore.load() 


    Ext.onReady(function() { 

     Ext.create('Ext.Panel', { 
      renderTo: Ext.getBody(), 

      margin: 4, 
      padding: 4, 
      width: 400, 
      title: 'Sample', 


      buttons: [ 
       { 
        text: 'Grid', handler: function() { 

         var model = new Ext.Window(
          { 

           width: 600, 
           autoScroll: true, 
           modal: false, 
           minimizable: true, 
           maximizable: false, 

           title: 'Students', 
           listeners: { 
            "minimize": function (window, opts) { 
             window.collapse(); 
             window.setWidth(150); 
             window.alignTo(Ext.getBody(), 'bl-bl') 


            } 
           }, 
           tools: [{ 
            type: 'restore', 
            handler: function (evt, toolEl, owner, tool) { 
             var window = owner.up('window'); 
             window.setWidth(600); 
             window.expand('', false); 
             window.center(); 
            } 
           }], 

           items: [{ 
            xtype: "grid", 

            store: activityStore, 

            title: 'Application Users', 
            columns: [ 
               { 
                text: 'Name', 
                width: 100, 
                align: "center", 
                sortable: false, 
                hideable: false, 
                dataIndex: 'name' 
               }, 
               { 
                text: 'Email Address', 
                width: 150, 
                sortable: false, 
                align: "center", 
                hideable: false, 
                dataIndex: 'email', 
               }, 

               { 
                text: 'Age', 
                flex: 1, 
                sortable: false, 
                hideable: false, 
                align: "center", 
                dataIndex: 'age' 
               } 


            ] 
           }] 
          }) 
         model.show(); 
        } 
       }, 



      ] 
     }); 
    }); 
    </script> 

Мой Выход -: Output Screenshot

ответ

1

Если вы хотите подкачки в сетке, нам нужно добавить панель инструментов постраничной в сетке, давая bbar свойство сетки.

bbar: Ext.create('Ext.PagingToolbar', { 
     store: activityStore, 
     displayInfo: true, 
     displayMsg: 'Displaying topics {0} - {1} of {2}', 
     emptyMsg: "No topics to display", 
     inputItemWidth: 35, 
    }) 

И мы должны сделать подкачки магазин, как здесь используется локальный data.We нужно использовать PagingMemory прокси.

Ext.define('UserStore', { 
     extend: "Ext.data.Store", 
     model: 'User', 
pageSize: 5, // records per page 
     proxy: { 
       type: 'memory', // paging memory proxy 
       enablePaging: true, 
data: [ 
      { name: 'Test1', email: '[email protected]', age: 19 }, 
      { name: 'Test2', email: '[email protected]', age: 23 }, 
      { name: 'Test3', email: '[email protected]', age: 45 }, 
      { name: 'Test4', email: '[email protected]', age: 32 }, 
      { name: 'Test5', email: '[email protected]', age: 22 }, 
       { name: 'Test6', email: '[email protected]', age: 23 }, 
       { name: 'Abh', email: '[email protected]', age: 22 }, 
       { name: 'Test7', email: '[email protected]', age: 29 }, 
       { name: 'Gt', email: '[email protected]', age: 24 }, 
       { name: 'Mg', email: '[email protected]', age: 24 }, 


     ],    
      } 


    }); 
    var activityStore = Ext.create('UserStore'); 
activityStore.loadPage(1); // loading first page 

Полный код: (Отображение 5 записей на странице)

Ext.define('User', { 
      extend: 'Ext.data.Model', 
      fields: ['name', 'email', 'age'] 

     }); 

    Ext.define('UserStore', { 
     extend: "Ext.data.Store", 
     model: 'User', 
pageSize: 5, 
     proxy: { 
       type: 'memory', 
       enablePaging: true, 
data: [ 
      { name: 'Test1', email: '[email protected]', age: 19 }, 
      { name: 'Test2', email: '[email protected]', age: 23 }, 
      { name: 'Test3', email: '[email protected]', age: 45 }, 
      { name: 'Test4', email: '[email protected]', age: 32 }, 
      { name: 'Test5', email: '[email protected]', age: 22 }, 
       { name: 'Test6', email: '[email protected]', age: 23 }, 
       { name: 'Abh', email: '[email protected]', age: 22 }, 
       { name: 'Test7', email: '[email protected]', age: 29 }, 
       { name: 'Gt', email: '[email protected]', age: 24 }, 
       { name: 'Mg', email: '[email protected]', age: 24 }, 


     ],    
      } 


    }); 
    var activityStore = Ext.create('UserStore'); 
activityStore.loadPage(1); 

    Ext.onReady(function() { 

     Ext.create('Ext.Panel', { 
      renderTo: Ext.getBody(), 

      margin: 4, 
      padding: 4, 
      width: 400, 
      title: 'Sample', 


      buttons: [ 
       { 
        text: 'Grid', handler: function() { 

         var model = new Ext.Window(
          { 

           width: 600, 
           autoScroll: true, 
           modal: false, 
           minimizable: true, 
           maximizable: false, 

           title: 'Students', 
           listeners: { 
            "minimize": function (window, opts) { 
             window.collapse(); 
             window.setWidth(150); 
             window.alignTo(Ext.getBody(), 'bl-bl') 


            } 
           }, 
           tools: [{ 
            type: 'restore', 
            handler: function (evt, toolEl, owner, tool) { 
             var window = owner.up('window'); 
             window.setWidth(600); 
             window.expand('', false); 
             window.center(); 
            } 
           }], 

           items: [{ 
            xtype: "grid", 

            store: activityStore, 

            title: 'Application Users', 
            columns: [ 
               { 
                text: 'Name', 
                width: 100, 
                align: "center", 
                sortable: false, 
                hideable: false, 
                dataIndex: 'name' 
               }, 
               { 
                text: 'Email Address', 
                width: 150, 
                sortable: false, 
                align: "center", 
                hideable: false, 
                dataIndex: 'email', 
               }, 

               { 
                text: 'Age', 
                flex: 1, 
                sortable: false, 
                hideable: false, 
                align: "center", 
                dataIndex: 'age' 
               } 


            ], 
            bbar: Ext.create('Ext.PagingToolbar', { 
      store: activityStore, 
      displayInfo: true, 
      displayMsg: 'Displaying topics {0} - {1} of {2}', 
      emptyMsg: "No topics to display", 
      inputItemWidth: 35, 
     }), 
           }] 
          }) 
         model.show(); 
        } 
       }, 



      ] 
     }); 
    }); 
+0

Спасибо Анкит за помощь мне. Этот код отлично работает –

+0

Приятно здесь. Что вы можете принять ответ Это поможет другим людям –

Смежные вопросы