I have a editable FormPanel that looks like this:

I now want to display the same form but so that the data is merely viewable instead of editable, i.e. instead of in textboxes, the data is simply displayed as text.
I can change the defaultType from textfield to panel but then the data isn't displayed at all.
What type of defaultType do I need so that the data value is simply displayed as text instead of in an input box?
var simple_form = new Ext.FormPanel({
labelWidth: 75,
frame:true,
title: 'Customer Information',
bodyStyle:'padding:5px 5px 0',
width: 600,
height: 600,
autoScroll: true,
defaults: {width: 230},
defaultType: 'textfield',
items: [{
fieldLabel: 'Item 1',
name: 'item1',
allowBlank:false,
value:开发者_如何学JAVA 'test'
},{
fieldLabel: 'Item 2',
name: 'item2',
value: 'test'
},{
fieldLabel: 'Item 3',
name: 'item3',
value: 'test'
}, {
fieldLabel: 'Item 4',
name: 'item4',
value: 'test'
...
Use Ext.form.DisplayField. The API describes DisplayField as:
A display-only text field which is not validated and not submitted.
Set your defaultType to defaultType: 'displayfield', and the value property to the text you want to display. Take a look at the Composite Fields example. The two DisplayFields are "mins" and "hours".
Having had a quick scan of the Ext.Js documentation (I've never used this library before) it would appear that you need to change...
defaultType: 'textfield',
...to...
defaultType: 'label,
...and...
value: 'test',
...to...
text: 'test',
...which would result in the text fields being replaced by labels - which themselves have labels.
Not sure if it would work, but it has to be worth a try.
The only other issue remaining, would be tro prevent the users form trying to submit the form, as it isn't really a form any more, just an information panel. This statement leads me to suggest that you really ought to be using one of the other Ext.Js components, such as GridPanel.
加载中,请稍侯......
精彩评论