Показывать возвращаемое сообщение json в div после каждого ответа ajax, сетка extjs4

StackOverflow https://stackoverflow.com/questions/9316618

  •  26-10-2019
  •  | 
  •  

Вопрос

У меня есть GridPanel, Модель, Магазин автосинхронизации с прокси-сервером ajax с функциями чтения и обновления и плагином RowEditing в extjs4.

Рассмотрим следующий JSON:

{ "success": true,"Message":"Grid Data Successfully updated.", "users": {"uname":"jdoe","fname":"John","lname":"Doe","SSN":125874,"mail":"jdoe@example.org"},{"uname":"jsmith","fname":"Jack","lname":"Smith","SSN":987456,"mail":"smith@example.com"}} 

Я хочу знать, есть ли способ отобразить значение «Сообщение» в HTML-теге div (например, my_div) после получения каждого ответа?

Это было полезно?

Решение

Вы можете использовать DOM Helper, см. sencha api: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.DomHelper

Ext.onReady(function(){
    Ext.DomHelper.insertHtml('beforeBegin', Ext.getDom('test'), "Prepend this string"); 
});​

Приведенный выше код получит HTML-элемент с идентификатором. test и он вставит строку Prepend this string beforeBegin содержимого этого div.

Посмотрите скрипку, чтобы поиграть: http://jsfiddle.net/PddU4/Prepend эта строка

РЕДАКТИРОВАТЬ 16 февраля 2012 г.:

Вам нужно слушать свои прокси success и failure:(вы также можете реализовать прослушиватель при загрузке вашего магазина или при обновлении)

listeners: {
    success: function( response, options ){     
       console.log(response);
    },
    failure: function( response, options ){
        console.log(response);
    },
}

ИЗМЕНИТЬ НА ОСНОВЕ ВАШЕГО КОММЕНТАРИЯ:

Сначала убедитесь, что вы правильно настроили свой successProperty и messageProperty в вашем ридере.Затем реализуйте прослушиватель там, где вы хотите, обновите, удалите, добавьте, исключите и т. д.:

(настройте прослушиватель внутри вашего прокси-объекта)

listeners   : {
    update : function(thisStore, record, operation ) {
        console.log('Update happened');
        console.log(record);
        console.log(operation);
    },
    save : function() {
        console.log('Save happened');
    },
    exception : function(dataproxy, type,  action, options,response,  arg) {
        console.log('Error happened');
        console.log(response);
                    doJSON(result.responseText);
    },
    remove : function() {
        console.log("Record removed");
    }
}

Когда ты console.log(response), вы увидите объект ответа.Это будет ваш настоящий JSON, поэтому вам нужно его проанализировать (как в doJSON() метод):

 function doJSON(stringData) {
    try {
        var jsonData = Ext.util.JSON.decode(stringData);
        Ext.MessageBox.alert('Success', 'Your server msg:<br />jsonData.date = ' + jsonData.message);
    }
    catch (err) {
        Ext.MessageBox.alert('ERROR', 'Could not decode ' + stringData);
    }
  }

Пожалуйста, проверьте это AJAX руководство: http://www.sencha.com/learn/legacy/Manual:Core:Ext.Ajax

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top