0

次の Extjs3 ArrayStore があります。他の場所では、値をリッスンし、ページの他の場所 (ストアの下のコード) で新しいデータを使用してストアをリロードしています。ロード後にストアを元のデータに「リセット」または再初期化する方法を探しています。つまり、次回はリスナーを介して

店舗:

  var applicationVersionStoreOriginalData = [
            <c:set var="firstLoop" value="true"/>
            <c:forEach var="productline" items="${environmentLookup.productlines}">
            <c:forEach var="application" items="${productline.applications}">
            <c:if test="${!firstLoop}">,
            </c:if>
            <c:set var="firstLoop" value="false"/>
            ["<c:out value="${application.recid}"/>","<%=ValueC.PRODUCT_NOT_LISTED%>","<%=ValueC.PRODUCT_NOT_LISTED%>"]
            <c:forEach var="applicationversion" items="${application.applicationversions}">,
            ["<c:out value="${application.recid}"/>","<spring:message text="${applicationversion.applicationversion}" javaScriptEscape="true"/>","<c:out value="${applicationversion.recid}"/>"]
            </c:forEach>
            </c:forEach>
            </c:forEach>
        ];

    var applicationversionStore = new Ext.data.ArrayStore({
        fields: ['applicationId', {name: 'applicationversionName', type: 'string'}, 'applicationversionId'],
        data: applicationVersionStoreOriginalData,
        originalData: applicationVersionStoreOriginalData
    });

データの負荷:

function filterApplicationVersionStore(appRecId) {
        console.log('AppRecId =' + appRecId);
        var store = Ext.getCmp("applicationversionCombo").getStore();
        var unlistedData = [[appRecId,"-- My version is not listed here --","-- My version is not listed here --"]];
        var applicationVersionStoreOriginalData = Ext.getCmp('applicationVersionStoreOriginalData')
        var applicationVersionCombo = Ext.getCmp('applicationversionCombo');

        if (!store.originalData) {
        store.originalData = store.getRange();
        }

        if (appRecId == '0309CD56B8CF4245A49E8C201C59AD36') {
            console.log('loading new data');
            store.loadData(unlistedData, false);
            store.reload();
        }
        else {
            console.log('loading old data');
            if (store.originalData) {
            store.loadData(store.originalData, false);
            }
        }
    }

元のデータでストアをリロードできるようにしたいと思います。それは可能ですか?

大変感謝します!

私はExtJs3.4にいます

これがコンソールに表示されているものです..

passing appRecId to function = AAEBD771130144A3A207F8BDF10B910F 
AppRecId =AAEBD771130144A3A207F8BDF10B910F 
loading old data 

---WORKS (if i disable //store.loadData(store.originalData, false);) -- otherwise the store has dupes and seems to contain mulitples

passing appRecId to function = 0309CD56B8CF4245A49E8C201C59AD36 
AppRecId =0309CD56B8CF4245A49E8C201C59AD36 
loading new data 

--NEW 'EMPTY' DATA IS THERE

passing appRecId to function = 987C7D2D6D194E5196F7598DDC624480 
AppRecId =987C7D2D6D194E5196F7598DDC624480 
loading old data 

--EMPTY!
4

1 に答える 1