Публикация

Как программно обновить поля на странице после обновления записи в базе данных (с помощью ESQ)

Вопрос

Как программно обновить поля на странице после обновления записи в базе данных (с помощью ESQ)?

Ответ

Программно обновить значение поля можно при помощи метода this.set(‘ColumnName’, ‘NewValue’). Рекомендуем обновлять поле в функции обратного вызова с предварительной проверкой на удачность обновления в базе данных.

Пример кода:

someMethod: function(){
    var value = this.get('UsrRequired');
    var updateQuery = Ext.create("Terrasoft.UpdateQuery", {
        rootSchemaName: "UsrRuleTest"});
    var filters = updateQuery.filters;
    filters.addItem(this.Terrasoft.createColumnFilterWithParameter(
        this.Terrasoft.ComparisonType.EQUAL, "Id", 'IdValue’));
    updateQuery.setParameterValue("UsrSomething", value, this.Terrasoft.DataValueType.TEXT);
    updateQuery.execute(function(result){
        if(result.success)
            this.set('UsrTest0', value);
    }, this);
}

 

Нравится

Поделиться

4 комментария

Добрый день!  попробовал по вашему коду сделать у себя выходит ошибка( ругается на  функцию set 

stack: TypeError: this.set is not a function

    at https://8-crm-dev.kmf.kz/0/configuration/5e6b668831cc1cda80b5afd046dae2…-

вот мой код

                     updateQuery.execute(

                     

                          function(result) {

                          if(result.success) {this.set("UsrOwner",UsrOwnerVisa);}

                              }

                         ) 

                          

                          ; }, this); 

См. аналогичное поведение тут.

спасибо , разобрался

Показать все комментарии