在sencha触摸中的不可修改的形式

时间:2011-07-22 09:52:20

标签: sencha-touch

我有一个Map<String, String>我想向用户显示但我不希望他们能够选择字段来修改它的值。我一直在使用带有文本字段的表单并设置设置属性来禁用它们。这不是理想的美学变化。我是按照正确的方式做的,只需要应用一些css,或者他们是更好的方法吗?

2 个答案:

答案 0 :(得分:1)

你可以制作一个不可修改的表格'标签',但看起来像表格的其余部分。可能需要一些调整,但这应该让你开始:

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);

答案 1 :(得分:0)

我有同样的需求,并希望该字段的功能类似于ExtJS显示字段。我在Sencha Touch中通过创建字段,禁用它,然后添加回正常的字段类来完成此操作。使用disable:true删除编辑器,但该字段不会显示为灰色且仍然易于阅读。

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

如果我有足够的这些字段并花时间覆盖我需要的其他字段类型,这可能会成为一个简单的覆盖。