Erste ausgewählte ListBox-Werte auf den button Klicken | ZK
Ich bin sehr neu in ZK framework und versuchen, passen paar Sachen und geschlagen an einer Stelle, die ich bin nicht sicher, wie Sie Sie zu erreichen.
Ich habe einen vordefinierten Abschnitt, wo ich zu zeigen 2 Dropdown und ein button und beibehalten werden muss die drop down Werte auf button-click-Ereignis.
Dies ist, wie Es wurde, definieren Sie im Frühjahr Datei
<bean id="mybean" parent="parentBean" class="WidgetRenderer">
<property name="detailRenderer">
<bean class="DetailsListRenderer" parent="abstractWidgetDetailRenderer"/>
</property>
</bean>
Hier mybean
wird verwendet, um die main-Sektion und ich bin das hinzufügen meiner drop-down-mit dieser Bohne, solange die Taste wird Hinzugefügt, um detailRenderer
.
Schaltfläche speichern ist die Bindung zu onClick
Ereignis, aber ich bin nicht sicher, wie ich die Holen kann Werte von meinem custom-drop-down?
Ich bin mir bewusst, über das binden diese Dropdown
mit onClick
event, aber Sie haben in derselben Klasse.
Kann irgend jemand mir empfehlen, wie kann ich die fetch-Werte der drop-down.Ich Schaffe nach unten mit dem folgenden code
Listbox listbox = new Listbox();
listbox.appendItem("item1", "item1");
listbox.appendItem("item2", "item2");
Dies ist mein button code in einer anderen Klasse
protected void createUpdateStatusButton(Widget widget,Div container)
{
Button button = new Button(LabelUtils.getLabel(widget, buttonLabelName, new Object[0]));
button.setParent(container);
button.addEventListener("onClick", new EventListener()
{
public void onEvent(Event event)throws Exception
{
MyClass.this.handleSaveStatusEvent(widget, event);
}
});
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie hören möchten
onSelect
(ich benutze lieberEvents.ON_SELECT
eher als schreiben der strings), die spezifischer ist, wenn dieListbox
Auswahl ändert.So oder so, der Schlüssel ist, um die Informationen, die Sie möchten, aus der
Event
übergeben IhreEventListener
, anstatt zurück zu IhremListbox
selbst. Die grundlegendenEvent
gewöhnlich trägt Sie nützliche Informationen übergetTarget
undgetData
aber mit spezifischeren Ereignisse (SelectEvent
in diesem Fall) geben Ihnen Zugang zu mehr relevanten Informationen.Finden Sie heraus, welche Ereignisse verfügbar sind für verschiedene ZK-widgets in Ihre Komponente die Referenz-Dokumentation.
Events.ON_SELECT
ausgelöst wird, wenn ich ausgewählt, alles inListBox
aber ich möchte es, wenn ich auf die Schaltfläche klicken.Sorry, wenn ich Frage, einige out-of-Kontext-Frage.Kurz gesagt ich will fetch-Werte der BeidenListBox
wenn ich aufSave
- TasteWenn ich die Frage verstehen (ich glaube nicht, dass ich in meiner vorherigen Antwort), die Sie wollen, um Informationen zu sammeln von der Seite (zB:
Listbox
Auswahl Zustand), wenn der Benutzer auf eine Schaltfläche klickt. Ihr problem ist, dass Sie mit unterschiedlichen Klassen, um die Seite verfassen und so nicht Zugriff auf die verschiedenen ZKComponent
s, wenn auf die Schaltfläche geklickt wird.(Ignorieren die mehrere Klasse Thema für eine minute)
Von einem hohen Niveau, es gibt sozusagen zwei Lager in der ZK-community. Die neueren MVVM-Ansatz schlägt vor, die anzeigen sollte, drücken Sie den entsprechenden Zustand an das back-end wie der Benutzer interagiert mit der front-end. Auf diese Weise, die back-end braucht nie zu Fragen, für den client-Status, und wenn der button angeklickt wird, werden die Werte/Zustand auf dem server sind bereit verwendet zu werden.
Den anderen camp bindet den client an den server, so dass die back-end hat immer Zugriff auf den client
Component
s und wenn die Schaltfläche geklickt wird, werden die Werte/Zustand können leicht abgerufen werden, durch die Interaktion mit den Komponenten.Ein weiterer Ansatz ist mehr wie das, was ich gesprochen habe in meiner vorherigen Antwort, nicht binden back-end auf dem client, sondern verlassen sich auf event-Daten so viel wie möglich. Ich bevorzuge diesen Ansatz, bei dem es ausreichend ist.
Nun, Sie sind frei, wählen Sie Ihre bevorzugte Ansatz und ZK hat sehr viel Dokumentation auf, wie die Arbeit in diesen lagern. Die Frage ist dann, wo ist der client-Zustand auf dem server gespeichert (entweder geschoben, dort durch den client in MVVM oder gebunden es in MVC). Ich glaube nicht, das ist eine Frage, die hier gelöst werden können, das ist ein software-engineering-Herausforderung. Ich persönlich schlage vor, Sie nehmen auf standard-ZK Muster so wie, nicht aber Köpfe mit dem Rahmen. Wenn Sie wirklich wollen, zu gehen, Ihre route, die Sie ergreifen können, einen Verweis auf die
Listbox
on-the-fly so:Components
definiert sind, die in ZUL (nicht der Fall), können Sie binden Sie in die controller - über CSS-Selektoren, oder einfach nur Ihre Daten an den server gebunden, so dass Sie nicht brauchen, um die Referenz der Komponente. Wenn Sie die Komponenten in Java, ich kann nicht denken Sie an einen Weg, um Sie abzurufen, die von Java andere als einfach, um ein halten desObject
Referenz.