سؤال

أنا أستخدم ZK 5.0.3. أرغب في استخدام ملزمة التعليق التوضيحي التالي كعنوان لمنطقة "مركز" في الحدود:

<a:bind content="entrydisplay.activeEntryCaption" /> <html />

أريد أن أفعل ما يلي:

<borderlayout>
 <north title="use the above binding here">
   this is north
 </north>
</borderlayout>

كيف يمكنني تحقيق الوظائف بحيث يمكنني لف هذا الربط كقيمة العنوان؟

شكرا ، سوني

هل كانت مفيدة؟

المحلول

لسؤالك المحدد ، قم بتعليق مكونك مثل المتابعة:

<borderlayout>
 <north id="mynorth" title="@{entrydisplay.activeEntryCaption}">
   this is north
 </north>
</borderlayout>

سيقوم موثق البيانات بقراءة هذا التعليق التوضيحي واتصل بطرق Getter و Setter لتعيين عنوان المكون الشمالي لك. سيفعل شيئًا مثل:

mynorth.setTitle(entrydisplay.getActiveEntryCaption());

نصائح أخرى

أنت تستخدم إصدارًا قديمًا من ربط بيانات ZK. يوصى بشدة أن تستفيد من أحدث منهجية.

الرابط التالي هو قسم ربط البيانات في مرجع ZK Essential Dide & Developer:

يتكون البيانات الأساسية الخاصة بنا من pojo التي تتبع اتفاقيات Java Bean التي يتم الوصول إليها من واجهة تعتمد على XML باستخدام التعليقات التوضيحية في السمات. علي سبيل المثال:

شخص بوجو:

public class Person {
    private String _firstName = "";
    private String _lastName = "";
    private Boolean _married = true;

    public Person(){

    }
    public Person(String firstName, String lastName, Boolean married){
        _firstName = firstName;
        _lastName = lastName;
        _married = married;
    }

    // getter and setters


    public void setFullName(String f) {
        // do nothing
    }

    public String getFullName() {
        return _firstName + " " + _lastName;
    }

    //add more here
}

ملف واجهة المستخدم:

<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
<window>
    <zscript><![CDATA[
        //prepare the person object
        import bean.Person;
        Person person = new Person();
        person.setFirstName("Max");
        person.setLastName("Planck");
    ]]>
    </zscript>
    <grid width="400px">
        <rows>
            <row> First Name: <textbox value="@{person.firstName}"/></row>
            <row> Last Name: <textbox value="@{person.lastName}"/></row>
            <row> Full Name: <label value="@{person.fullName}"/></row>
        </rows>
    </grid>
</window>

تم وصف النظرية هنا.

أعتقد أن الطريقة القديمة قد فعلت ذلك مثل هذا

<borderlayout>
 <north>
     <attribute name="label">
         <a:bind value="entrydisplay.activeEntryCaption" />
     </attribute>
 </north>
</borderlayout>

Doc الجديد Doc لـ [http://docs.zkoss.org/wiki/Data_Binding 'BudapData Binding

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