2

煎茶タッチ初心者です。Ext.plugin.PullRefresh および Ext.plugin.ListPaging プラグインを使用してページを更新するリスティング ページがありますが、プルして更新した後に重複したアイテムが表示されるという問題があります。

これが私のコーディングです

~見る

Memberlist.js

    Ext.define('bluebutton.view.BlueButton.MemberList', {
    extend: 'Ext.List',
    xtype: 'memberlistcard',
    requires: [
        'Ext.field.Select',
        'Ext.field.Search',
        'bluebutton.view.BlueButton.MemberDetail',
         'Ext.plugin.ListPaging',
        'Ext.plugin.PullRefresh'

    ],
    config: {
        iconCls: 'team1',
        title: 'Member List',
        styleHtmlContent: true,
        scrollable: 'vertical',

         store : { xclass : 'bluebutton.store.BlueButton.MemberList'},
        grouped: true,
        indexBar: true,
         limit: 5,
       plugins: [
                    { xclass: 'Ext.plugin.ListPaging',
                      autoPaging: true },
                    { xclass: 'Ext.plugin.PullRefresh' }
                ],

        id :'memberlist',
        items: [

            {
                xtype: 'toolbar',
                docked: 'top',

                items: [
                    {
                        xtype: 'selectfield',
                        name: 'gender',
                        cls: 'txtwhite',
                        options: [
                            { text: 'Active Member', value: 'both' },
                            { text: 'Delete Member', value: 'male' },
                            { text: 'Suspended Member', value: 'female' }
                        ]
                    },

                    { xtype: 'spacer' },

                    { xtype: 'searchfield' ,
                         itemId:'membersearch',
                         id :'membersearch'
                    }
                ]
            }
        ],
        emptyText: '<p class="no-search-results">No member record found matching that search</p>',
        itemTpl: Ext.create(
            'Ext.XTemplate',
            '<div class="tweet-wrapper">',
                '<table>',
                    '<tr>',
                        '<td rowspan="2" width="1%">',
                        '   <img src="{imgUrl}" width="170" height="170" />',
                        '</td>',
                        '<td>',
                        '   <div class="tweet">',
                        '       <h2>{memberId}</h2>',
                         '      <h3>Name: {name}</h3>',
                        '       <h3>Age : {age}</h3>',
                        '       <h3>Address : {address}</h3>',
                        '       <h3>Point Avalaible : {pointAvalaible}</h3>',
                        '       <h3>Last Visited : {lastVisited}</h3>',
                        '   </div>',
                        '</td>',
                    '</tr>',
                '</table>',
            '</div>'


        ),



    },


});

~ストア

Memberlist.js

Ext.define('bluebutton.store.BlueButton.MemberList', {
extend: 'Ext.data.Store',

config: {
    grouper: {
        groupFn: function (record) {
            return record.get('name')[0];
        }
    },

    fields: ['memberId', 'name','age' ,'imgUrl','address','lastVisited','pointAvalaible'],
      pageSize: 5,
       autoLoad: false,
        storeId :'memberlist',

    data: [{
        memberId: 'Kenny',
        name: 'Kenny Chow',
        imgUrl: '/bluebutton/resources/images/user3.png',
        age: '20',
        address:'The Business Centre , 61 Wellfield Road , Roath, Cardiff, CF24 3DG',
        pointAvalaible :'10',
        lastVisited: '26/11/2012, 11:52 AM',




    }, {
        memberId: 'Anthony',
        name: 'Anthony Tan',
        imgUrl: '/bluebutton/resources/images/user3.png',
        age: '21',
        address:'3 Edgar Buildings , George Street , Bath , England , BA1 2FJ',
        pointAvalaible :'44',
        lastVisited: '27/11/2012, 09:52 AM'
    },

    {
        memberId: 'Nicholas',
        name: 'Nicholas Chen',
        imgUrl: '/bluebutton/resources/images/user3.png',
        age: '22',
        address: '91 Western Road , Brighton ,East Sussex ,England ,BN1 2NW ',
        pointAvalaible :'30',
        lastVisited: '30/11/2012, 15:52 PM'
    },

    {
        memberId: 'Admin2',
        name: 'Admin2',
        imgUrl: '/bluebutton/resources/images/user3.png',
        age: '30',
        address: '50 Eestern Road , Brighton ,West Sussex ,England ,BN1 34W ',
        pointAvalaible :'120',
        lastVisited: '01/12/2012, 15:52 PM'
    },

     {
         memberId: 'User2',
         name: 'User2',
         imgUrl: '/bluebutton/resources/images/user3.png',
         age: '25',
          address:'Office 33 ,27 Colmore Row ,Birmingham, England ,B3 2EW',
             pointAvalaible :'32',

              lastVisited: '30/11/2012, 18:52 PM'
         }



    ]
    }
});

助けてください。ありがとう

4

3 に答える 3

1

私もこの問題に直面しました。pullrefreshのrefresh関数をオーバーライドして追加しました

refreshFn(){
  Ext.getStore(storeid).load()
}
于 2012-12-10T12:19:01.977 に答える
0

現在、あなたのストアには、更新時にどのレコードが新しいかを判断する方法がありません。これを修正するには、ストアで使用できる定義済みの idProperty を持つ Ext.data.Model インスタンスを作成する必要があります。作成したら、ストアの「モデル」プロパティをモデルの名前に設定します。次に、ストアが更新されると、どのレコードが実際に新しいかを確認し、それらのみを挿入できます。

ストア構成の「fields」プロパティを削除し、次のものに置き換えます。

model: 'bluebutton.model.BlueButton.MemberList'

モデルサンプル:

Ext.define('bluebutton.model.BlueButton.MemberList', {
extend: 'Ext.data.Model',
config: {
     idProperty: 'memberId',
     fields: ['memberId', 'name','age' ,'imgUrl','address','lastVisited','pointAvalaible']
}
}
于 2013-06-19T14:09:19.620 に答える