簡體   English   中英

ExtJS分頁組合遠程JSON存儲。 使用分頁顯示所選值

[英]ExtJS paged combo with remote JSON store. Display selected value with paging

我有一個帶遠程存儲的ExtJS組合,它以JSON格式返回給我數據。 當我在第一頁上選擇一個值(例如)然后導航到另一個頁面時,組合顯示選擇了id,而不是值。

如何始終顯示所選值?

碼:

Ext.onReady(function() {
    Ext.define('Model', {
        extend: 'Ext.data.Model',
        fields: ['title'],
        idProperty: 'threadid'
    });

    var store = Ext.create('Ext.data.Store', {
        pageSize: 50,
        model: 'Model',
        remoteSort: true,
        proxy: {
            type: 'jsonp',
            url: 'http://www.sencha.com/forum/topics-browse-remote.php',
            reader: {
                root: 'topics',
                totalProperty: 'totalCount'
            },
            simpleSortMode: true
        }
    });

    var combo = Ext.create('Ext.form.ComboBox', {
        fieldLabel: 'Value',
        store: store,
        queryMode: 'remote',
        displayField: 'title',
        valueField: 'threadid',
        pageSize: 50,
        labelWidth: 50,
        width: 300,
        padding: '60 0 0 0'
    });

    Ext.create('Ext.window.Window', {
        title: 'Hello',
        height: 200,
        width: 400,
        layout: { type: 'vbox', align: 'center' },
        items: combo
    }).show();
})​

示例: http//jsfiddle.net/coshmos/5wT6H/

更多信息(案例研究):
我有一張表可以更新記錄。 我單擊一個項目,然后我的服務器從數據庫返回值。 然后出現帶有UI的窗口。 對於所有分頁組合,它只返回id。 所以,直到我沒有導航到帶有返回id的項目的頁面,我沒有看到值。 如果我禁用分頁並加載所有值,則所有值都按預期工作,但加載數千個值並不好。

它可以這樣修復:

Ext.override(Ext.form.field.ComboBox,{
    findRecord: function(field, value) {
        var foundRec = null;
        Ext.each(this.lastSelection, function(rec) {
            if (rec.get(field) === value) {
                foundRec = rec;
                return false; // stop 'each' loop
            }
        });
        if (foundRec) {
            return foundRec;
        } else {
            return this.callParent(arguments);
        }
    }
});

嘗試一下: http//jsfiddle.net/5wT6H/3/

我改變了邏輯。 另外發送一個組合框值的Id,之后用此Id設置extraProxyParams並加載商店。 之后清理extraProxyParams。 因此,在用戶搜索另一個值之后,他可以執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM