Ext JS ОТКРЫТЬ / СОХРАНИТЬ диалог по клику

1

Используя ExtJS 4.2.3, у меня есть FORM со списком вложений. Когда я нажимаю на одно из вложений, оно начинает загружаться. Вместо загрузки мне нужно получить диалог с возможностью открывать или сохранять файл по клику.

Пример кода:

<script type="text/javascript" language="javascript">
    Ext.onReady(function () {

        var trGuid = Ext.Object.fromQueryString(location.search).trGUID;

            Ext.define("File_model", {
                extend: "Ext.data.Model",
                fields: [
                    { name: 'document_GUID', type: 'string' },
                    { name: 'attachment_fileName', type: 'string' },
                ]
            }); // end Model

            Ext.create('Ext.data.Store', {
                storeId: 'FileStore',
                model: "File_model",
                proxy: {
                    type: 'jsonp',
                    url: 'http://test/AttachmenttoHTML/List',
                    extraParams: { trGUID: trGuid },
                    reader: {
                        type: 'json',
                        root: 'data'
                    }
                },
                autoLoad: true
            }); // end Store

            FileGrid = new Ext.grid.Panel({
                renderTo: "EXT-CONTENT",
                width: 750,
                height: 500,
                listeners: {
                    cellclick: function (table, td, cellIndex, record, tr, rowIndex, e) {
                        var url = 'http://test/Attachment/Get?document_GUID=' + record.get("document_GUID");
                        console.log(url);
                        window.location = url;
                    }
                },
                columns: {
                    defaults: { filter: true },
                    items: [
                        { text: 'Name', dataIndex: 'attachment_fileName', width: 748, cellWrap: true }
                    ]
                },
                store: Ext.data.StoreManager.lookup('FileStore')
            }); // end TaskGrid

    }); // end onReady
</script>
Теги:
extjs
web
extjs4

1 ответ

0

В вашей функции cellclick вам нужно вызвать такую функцию:

function openDialogue(url) {
Ext.MessageBox.show({
       title:'Export',
       msg: 'Souhaitez vous télécharger le document?',
       buttons: Ext.MessageBox.YESNOCANCEL,
       fn: showResult,
       animateTarget: 'mb4',
       icon: Ext.MessageBox.QUESTION
   });
}

Вы можете найти более подробное сообщение об ошибке (http://docs.sencha.com/extjs/4.0.7/#!/example/message-box/msg-box.html).

Функция showResult перенаправит URL-адрес, как вы это делали раньше.

В противном случае вы можете использовать window.open для сохранения диалога.

Надеюсь, поможет !

Ещё вопросы

Сообщество Overcoder
Наверх
Меню