EasyUI Forum
April 29, 2024, 01:09:33 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: datagrid component row group with pagination bug  (Read 6082 times)
mradxz
Newbie
*
Posts: 8


View Profile
« on: October 26, 2018, 06:46:56 PM »

The pageSize property is 10 but only 7 records can be displayed after adding the 'groupField' attribute.

Code:
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>EasyUI for Vue</title>
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/icon.css">
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/color.css">
<link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/vue.css">
    <script src="http://www.jeasyui.com/node_modules/vx-easyui/vue.min.js"></script>
    <script src="http://www.jeasyui.com/node_modules/vx-easyui/babel-polyfill.js"></script>
    <script src="http://www.jeasyui.com/node_modules/vx-easyui/vx-easyui-min.js"></script>
    <script src="http://www.jeasyui.com/node_modules/vx-easyui/babel.min.js"></script>
    <style type="text/css">
        body{
            padding: 20px;
        }
        h2{
            margin: 0 0 20px 0;
        }
        .mycontainer{
            min-width: 700px;
        }
    </style>
</head>
<body>
    <div id="app"></div>
    <script type="text/babel">
    var demopagination2={
    template: `
<div>
<h2>Pagination - Lazy Load</h2>
<div style="margin-bottom:10px">
<Label for="c1">Pager on: </Label>
<ComboBox inputId="c1" style="width:120px"
:data="pageOptions"
v-model="pagePosition"
:editable="false"
:panelStyle="{height:'auto'}">
</ComboBox>
</div>
<DataGrid style="height:450px"
:pagination="true"
        :lazy="true"
:data="data"
:total="total"
        :loading="loading"
        :pageNumber="pageNumber"
        :pageSize="pageSize"
        groupField="group"
        :pagePosition="pagePosition"
        :pageLayout="['list','sep','first','prev','num','tpl','next','last','refresh','info']"
        @pageChange="onPageChange($event)">
<GridColumn field="inv" title="Inv No"></GridColumn>
<GridColumn field="name" title="Name"></GridColumn>
<GridColumn field="amount" title="Amount" align="right">
     
        <template slot="body" slot-scope="scope">
                   
                    <ComboBox
                   

                        @filterChange="$refs.d1.closed=false"
                        class="f-full"
                       
                        inputId=amount
                        :data='[
                            { value: 11, text: "Mr. Nice" },
                            { value: 12, text: "Narco" },
                            { value: 13, text: "Bombasto" },
                            { value: 14, text: "Celeritas" },
                            { value: 15, text: "Magneta" },
                            { value: 16, text: "RubberMan" },
                            { value: 17, text: "Dynama" },
                            { value: 18, text: "Dr IQ" },
                            { value: 19, text: "Magma" },
                            { value: 20, text: "Tornado" }
                        ]'
                       
                    >
                    </ComboBox>
               
                </template>
     
      </GridColumn>
<GridColumn field="price" title="Price" align="right"></GridColumn>
<GridColumn field="cost" title="Cost" align="right"></GridColumn>
      <GridColumn field="note" title="Note"></GridColumn>
     
      <template slot="group" slot-scope="scope" >
                    <span style="font-weight:bold">
                        {{scope.value}}
                    </span>
                </template>
</DataGrid>



<Dialog ref="d1"
        :title="' 新增'"
        iconCls="icon-add"
        :dialogStyle="{width:'400px',height:'200px'}"
        :modal="true"
        :closable="true"
        :closed="true"
        >
   
   
<Panel :bodyStyle="{padding:'20px'}" style="height:160px">
        <p>Panel Content.</p>
        <template slot="footer">
            <div style="padding:5px">
                <LinkButton iconCls="icon-add">新增</LinkButton>
            </div>
        </template>
</Panel>
</Dialog>

</div>
`,
    /*$refs.d1.closed=false*/
  data() {
    return {
      total: 0,
      pageNumber: 1,
      pageSize: 10,
      data: [],
      loading: false,
      pagePosition: "bottom",
      pageOptions: [
        { value: "bottom", text: "Bottom" },
        { value: "top", text: "Top" },
        { value: "both", text: "Both" }
      ]
    };
  },
  created() {
    this.loadPage(this.pageNumber, this.pageSize);
  },
  methods: {
    onPageChange(event) {
      this.loadPage(event.pageNumber, event.pageSize);
    },
    loadPage(pageNumber, pageSize) {
      this.loading = true;
      setTimeout(() => {
        let result = this.getData(pageNumber, pageSize);
        this.total = result.total;
        this.pageNumber = result.pageNumber;
        this.data = result.rows;
        this.loading = false;
      }, 1000);
    },
    getData(pageNumber, pageSize) {
      let total = 100000;
      let data = [];
      let start = (pageNumber - 1) * pageSize;
      for (let i = start + 1; i <= start + pageSize; i++) {
        let amount = Math.floor(Math.random() * 1000);
        let price = Math.floor(Math.random() * 1000);
        data.push({
          group:'group'+i%4,
          inv: "Inv No " + i,
          name: "Name " + i,
          amount: amount,
          price: price,
          cost: amount * price,
          note: "Note " + i
        });
      }
      return {
        total: total,
        pageNumber: pageNumber,
        pageSize: pageSize,
        rows: data
      };
    }
  }
    }
    var app = new Vue({
    el: '#app',
    template: `<demopagination2 class="mycontainer"></demopagination2>`,
    components: {
    demopagination2:demopagination2    }
    })
    </script>
   
</body>
</html>
Logged
jarry
Administrator
Hero Member
*****
Posts: 2262


View Profile Email
« Reply #1 on: October 27, 2018, 01:09:34 AM »

When displaying group rows on DataGrid component, please prevent from loading data with 'lazy' mode.
Logged
mradxz
Newbie
*
Posts: 8


View Profile
« Reply #2 on: October 27, 2018, 09:15:07 PM »

When displaying group rows on DataGrid component, please prevent from loading data with 'lazy' mode.

Oh, man, I hope this is not a joke.
fix it please
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!