Xforms: حدد التحديد الافتراضي في المنسدلة في الربط

StackOverflow https://stackoverflow.com/questions/3019006

  •  26-09-2019
  •  | 
  •  

سؤال

لدي مثيل رئيسي يسمى "myinstance" الذي يحتوي على لون العنصر. يمكن أن يكون اللون "أحمر" أو "أزرق" أو "أخضر" أو "أصفر". يتم ملء الألوان في منسد من مثيل آخر يسمى "ColorSinstance". عند تحميل النموذج الخاص بي ، أريد ضبط الافتراضي في القائمة المنسدلة على "الأخضر" في ملزمة العقد.

<instance id="colorsinstance">  
    <items>
        <item label="Color1" value="Red"/>
        <item label="Color2" value="Blue"/>
        <item label="Color3" value="Green"/>
        <item label="Color4" value="Yellow"/>
    </items>
</instance>

ملزمة مثيل رئيسي على النحو التالي:

<xforms:bind nodeset="instance('myinstance')">
    <xforms:bind nodeset="./color" required="true()"/>
</xforms:bind>
هل كانت مفيدة؟

المحلول

ستعكس القيمة الافتراضية للمنزل القيمة المخزنة في المثيل. يمكنك إما وضع الافتراضي مباشرة في المثيل الخاص بك ، على سبيل المثال:

<color>Green</color>

أو يمكنك تعيين القيمة باستخدام setValue ، على سبيل المثال هذا في النموذج الخاص بك:

<xforms:setvalue ev:event="xforms-model-construct-done"
                 ref="color">Green</xforms:setvalue>

تم تحديثه بعد تعليقك: إذا كنت تريد استخدام نماذج Orbeon XXForms: الامتداد الافتراضي ، ثم حاول:

<xforms:bind nodeset="./color" required="true()" xxforms:default="'Green'"/>

تم تحديثه أيضًا لتعكس حقيقة أن بيانات المثيل يجب أن تحتوي على "خضراء" ، وليس "Color3".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top