2011-07-22 11 views
1

私はユーザーに表示したいのですが、値を変更するフィールドを選択できないようにしたいのですが、Map<String, String>です。私は、テキストフィールドとフォームを使用して、それらを無効にするプロパティを設定しています。美学の変化に伴い、これは理想的ではありません。私は正しい方法でやっていますか、単にCSSを適用する必要があるのですか、これを行うためのよりよい方法ですか?賢者のタッチで変更不可能なフォーム

答えて

1

フォーム 'label'は変更不可能ですが、フォームの残りの部分と同じように見えます。いくつかの調整が必要になる場合がありますが、これはあなたが始める必要があります:私はExtJSのをdisplayfieldと同様に機能するフィールドを同じ必要性を持っていたと思っている

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

。私はSencha Touchでフィールドを作成し、それを無効にしてから通常のフィールドクラスを追加してこれを行いました。エディタはdisable:trueを使用して削除されますが、フィールドはグレー表示されず、読みやすくなります。

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

私はこれらのフィールドを十分に持っていたし、私が必要な他のフィールドタイプを上書きするために時間がかかった場合、これは、単純なオーバーライドになる可能性があります。

関連する問題