4

エディット コントロールへの動的バインディングを行う方法を理解するのに問題があります。バックエンドにはフィールド fItem01 fItem02... fPD01 fPD02.. fRQR01 fRQR02.. があります。すべてのフィールドの値を取得できますが、編集コントロールのバインディングを定義できました。

この件に関するすべての投稿を読みましたが、何が間違っているのかわかりません。また、バインディングのプロパティを持つカスタム コントロールを使用しようとしましたが、どちらも機能しませんでした。

このボブの助けをありがとう

<xp:this.data>
    <xp:dominoView var="view1" viewName="vwMultItem"></xp:dominoView>
</xp:this.data>
<xp:table border="1">
    <xp:tr>
        <xp:td>
            <xp:label value="Title" id="label1"></xp:label>
        </xp:td>
        <!--<xp:td></xp:td>-->
    </xp:tr>
    <xp:repeat id="repeat1" rows="1" value="#{view1}" var="row">
        <xp:panel id="panelDocData">
            <xp:this.data>
                <xp:dominoDocument var="document1"
                    formName="frMultItem" action="editDocument"
                    documentId="#{javascript:row.getNoteID();}">
                </xp:dominoDocument>
            </xp:this.data>
            <xp:repeat id="repeat2" rows="3" var="rowItem" first="0"
                indexVar="indexVar">
                <xp:this.value><![CDATA[#{javascript:new Array("01", "02", "03")}]]></xp:this.value>    
                <xp:tr>
                    <xp:repeat id="repeat3" first="0" rows="2"
                        var="rowName">
                        <xp:this.value><![CDATA[#{javascript:new Array("fItem","fPD")}]]></xp:this.value>
                        <xp:td>
                            <xp:text escape="true" id="computedField1">
                                <xp:this.value><![CDATA[#{javascript:document1.getItemValueString(rowName+rowItem);
                                }]]></xp:this.value> </xp:text>                         
                        </xp:td>
                    </xp:repeat>
                        <xp:td>
                            <xp:inputText id="inputText1"
                                value="#{javascript:'#{document1.fRQR'+'01'+'}'}">
                            </xp:inputText></xp:td>
                </xp:tr>
            </xp:repeat>
        </xp:panel>
    </xp:repeat>
</xp:table>
4

1 に答える 1

1

繰り返しコントロールに入れたいフィールドがわかっているのでfieldName、内側の繰り返しブロックの s を完全に計算できます

javascript:["fItem"+rowItem,"fPD"+rowItem,"fRQR"+rowItem]

そして、それらを編集コントロールの値 EL で使用します#{document1[fieldName]}

<xp:repeat
    id="repeat2"
    var="rowItem"
    indexVar="indexVar">
    <xp:this.value><![CDATA[#{javascript:["01", "02", "03"]}]]></xp:this.value>
    <xp:tr>
        <xp:repeat
            id="repeat3"
            var="fieldName">
            <xp:this.value><![CDATA[#{javascript:["fItem"+rowItem,"fPD"+rowItem,"fRQR"+rowItem]}]]></xp:this.value>
            <xp:td>
                <xp:inputText
                    id="inputText2"
                    value="#{document1[fieldName]}">
                </xp:inputText>
            </xp:td>
        </xp:repeat>
    </xp:tr>
</xp:repeat>
于 2013-08-15T20:20:09.727 に答える