كيفية استخدام التعليقات التوضيحية ZK
-
26-09-2019 - |
سؤال
أنا أستخدم 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