Не изменяемая форма в контакте сенча - PullRequest
1 голос
/ 22 июля 2011

У меня есть Map<String, String>, который я хотел бы показать пользователю, но я не хочу, чтобы они могли выбирать поле для изменения его значения. Я использовал форму с текстовыми полями и установил свойство, чтобы отключить их. Это не идеально, так как их эстетика меняется. Я делаю это правильно и просто нужно применить некоторые CSS или это лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Вы можете создать форму «метка», которая не модифицируется, но выглядит как остальная часть формы.Может потребоваться несколько настроек, но это должно помочь вам начать:

Ext.form.LabelField = function(config){
   Ext.form.LabelField.superclass.constructor.call(this, config);
};

Ext.extend(Ext.form.LabelField, Ext.form.Field,  {
    isField: true,
    value: '',
    renderSelectors: {fieldEl: '.x-form-labelfield'},
    renderTpl: [
        '<tpl if="label">',
            '<div class="x-form-label"><span>{label}</span></div>',
        '</tpl>',
        '<div class="x-form-label x-form-labelfield" style="width:70%; text-align:right"><span>{value}</span></div>',
   ],
   setValue:function(val) {
      this.value = val;
      if(this.rendered){
         this.fieldEl.update('<span>' + val + '</span>');
      }
    return this;
   },

});

Ext.reg('labelfield', Ext.form.LabelField);
0 голосов
/ 08 января 2015

У меня была такая же потребность, и я хотел, чтобы поле функционировало аналогично полю отображения ExtJS.Я сделал это в Sencha Touch, создав поле, отключив его, а затем добавив обратно класс обычного поля.Редактор удаляется с помощью disable: true, но поле не затенено и все еще легко читается.

{
    xtype: 'textfield',
    disabled: true,
    disabledCls: 'x-field',
    label: 'Label',
    name: 'name'
}

Это может стать простым переопределением, если у меня будет достаточно этих полей и я получувремя переопределить другие необходимые мне поля.

...