2016-11-03 4 views
0

私はいくつかの行で読み込まれたインスタンスを持っています(例えば、3行、それぞれ姓、名):XForms Orbeon:exformsを制限する方法:「フォームをロードする」だけでソートする(ユーザーが入力したときにブロックのソート)

<users> 
    <user> 
    <last-name>Smith</last-name> 
    <last-name>John</last-name> 
    </user> 
    <user> 
    <last-name>Doe</last-name> 
    <last-name>John</last-name> 
    </user> 
    <user> 
    <last-name>Xanadu</last-name> 
    <last-name>Juliet</last-name> 
    </user> 
</user> 

接続したユーザーは、グリッドで姓または名を変更できます。

私の問題は、私が使用されるということである。毎回ユーザの修正(文字による文字)姓、ソートが接続されているユーザタイピングで得られ、動的に変化してもよいことを意味する表示用

<xforms:repeat nodeset="exforms:sort(./user, 'last_name', 'text', 'ascending')"> 

間違った場所で、または彼の方法を失う。

"書き込みモード"で画面の最初の読み込み時にグリッドをソートし、ブロックソートする方法はありますか?

私は間違ったやり方をしていますか?

私の目標は、姓でソートされた行を表示し、ユーザーが望むものを(動的ソートなしで)変更できるようにしてから、データを保存します(次に表示されるときに再びソートされます)。

答えて

1

私はアクションでそれを行います。 <xf:model>に次の文字を入力します(<users>my-instanceというインスタンスにあるものとします)。

<xf:action event="xforms-model-construct-done"> 

    <xf:var 
     name="original-users" 
     value="instance('my-instance')/user"/> 

    <xf:delete 
     ref="$original-users"/> 

    <xf:insert 
     context="instance('my-instance')" 
     origin="exf:sort($original-users, 'last_name', 'text', 'ascending')"/> 

</xf:action> 
関連する問題