表单中混合的可编辑字段和不可编辑字段

时间:2014-07-15 15:18:21

标签: sapui5

我有" BIG"表单及其字段的问题: enter image description here

我想要一个混合内容:可编辑且不可编辑的字段。如果我设置editable="true",则可编辑字段的所有内容都是正确的,而不是我设置editable="false"的ID,那么不可编辑字段的所有字段都是正确的。

控制器的代码是:

this.byId("rowDetFormEditContainer").removeAllFormElements();
        for (var i = 0; i < cols.length; i++) {
            var formEl = new sap.ui.layout.form.FormElement();
            formEl.setLabel(cols[i]);


            //small edit (beni)
            else if((getActualOperationId()=="dettBeniPeriodo"||getActualOperationId()=="dettRettificheBeni")&&(cols[i]=='NOM_DOGANALE')){
                this.getView().setModel('bene','updateType');
                if(cols[i]=='NOM_DOGANALE'){
                    var codNomnclList=sap.ui.getCore().getModel('codNomnclList');
                    var field=new sap.m.Input({value : itemToEdit[Object.keys(itemToEdit)[i]]});
                    for(var k=0;k<codNomnclList.beni.length;k++){
                        field.addSuggestionItem(new sap.ui.core.Item().setKey(codNomnclList.beni[k]).setText(codNomnclList.beni[k]));
                        field.setShowSuggestion(true);
                    }
                    formEl.addField(field);

                }else{
                    formEl.addField(new sap.m.Text({text:itemToEdit[Object.keys(itemToEdit)[i]]}));
                }



            }else{
                formEl.addField(new sap.m.Text({text:itemToEdit[Object.keys(itemToEdit)[i]]}));
            }

            this.byId("rowDetFormEditContainer").addFormElement(formEl);

        }

并进入XML View我写道:

<Page id='pageRowDetailEdit' title="Modifica" showNavButton="true" navButtonPress="doBack">
        <content>
        <l:Grid
            defaultSpan="L12 M12 S12"
            hSpacing="2"
            width="auto">
            <l:content>
              <f:Form id="FormEdit"
                minWidth="1024"
                maxContainerCols="2"
                editable="false"
                class="isReadonly">
                <f:title>
                  <core:Title text="Modifica" />
                </f:title>
                <f:layout>
                  <f:ResponsiveGridLayout
                    labelSpanL="3"
                    labelSpanM="3"
                    emptySpanL="4"
                    emptySpanM="4"
                    columnsL="1"
                    columnsM="1" />
                </f:layout>
                 <f:formContainers>
                   <f:FormContainer id="rowDetFormEditContainer">

                  </f:FormContainer> 
                </f:formContainers> 
              </f:Form>
            </l:content>
          </l:Grid>

        </content>

        <footer>
          <Bar>
            <contentRight>
              <Button text="Accetta" press="onPressOnAccept" type="Accept" />
            </contentRight>
          </Bar>
        </footer>



    </Page>

1 个答案:

答案 0 :(得分:0)

我认为您在Element中使用的addField()存在问题。

NOM_DOGANALE使用input元素旁边,否则使用text

使用input代替text并使用setEditable(false)。这应该有效。