0

こちらは有線です。

これは、グリッド ツールバー ボタンのクリックから発生します。

// fires when the client hits the add attachment button.
onAddAttachmentClick: function () {
    var uploadAttachmentsWindow = new Nipendo.ProformaInvoice.Attachment.UploadWindow({
        invoice: this.invoice,
        maxFileSizeInMB: this.maxFileSizeInMB
    });

    uploadAttachmentsWindow.on('uploadcomplete', function (win, message) {
        if (message.msg !== 'success') {
            return;
        }

        win.close();
        var store = this.getStore();

        store.setBaseParam('useCache', false);
        store.load();

        this.fireEvent(
            'attachmentuploaded',
            this.invoice.ProformaInvoiceNumber,
            this.invoice.VendorSiteID,
            this.invoice.CustomerSiteID);

    }, this);

    uploadAttachmentsWindow.show();
} // eo onAddAttachmentClick

これは、uploadcomplete イベントで発生することです。

this.uploadBtn.on('click', function () {
    var form = this.uploadForm.getForm();

    if (!form.isValid()) {
        return;
    }

    form.submit({
        url: 'XXX.ashx',
        waitMsg: Nipendo.Localization.UploadingAttachment,
        scope: this,
        success: function (form, action) {
            this.fireEvent('uploadcomplete', this, {
                msg: 'success',
                response: action.response
            });
        },
        failure: function (form, action) {
            switch (action.failureType) {
                case Ext.form.Action.CLIENT_INVALID:
                    this.fireEvent('uploadcomplete', this, {
                        msg: 'Form fields may not be submitted with invalid values'
                    });
                    break;
                case Ext.form.Action.CONNECT_FAILURE:
                    this.fireEvent('uploadcomplete', this, {
                        msg: 'Ajax communication failed'
                    });
                    break;
                case Ext.form.Action.SERVER_INVALID:
                    Ext.Msg.alert(action.result.title, action.result.message);
                    this.fireEvent('uploadcomplete', this, {
                        msg: action.result.message
                    });
                    break;
            }
        }
    });

}, this);

IE 8 では、デバッガーで次のエラーが発生します。

ここに画像の説明を入力

どのオブジェクトが欠落しているのかわかりません...私のチェックから、それらはすべて定義されています。

誰かアイデアはありますか?

リスナーからイベントが発生していることに注意してください (これが問題の原因ではないかと疑っています)。

わかりにくいですが、fireメソッドのext-all.jsでエラーが発生しています。

4

1 に答える 1

1

私は答えを見つけました: https://stackoverflow.com/a/3584887/395890

問題は、イベントを 2 つの異なるウィンドウにリストしていたことでした。これは、Ext では不可能です。

それを解決するために私が行ったことは、ポップアップウィンドウからopnerウィンドウを呼び出して変更について通知することでした。

于 2012-09-05T14:07:08.587 に答える