Udało mi się uzyskać kliknięcie przycisku działającego do tej pory, postępując zgodnie z dokumentacją. Obecnie zmagam się z programowym wyzwalaniem zdarzenia click komponentu ADF.Zdarzenie wyzwalania/symulacji kliknięcia programowo za pośrednictwem ClientListerner
Kod źródłowy jest w następujący sposób:
<af:showDetailItem id="pane1" text="Panel Label 1" disclosed="true">
<af:commandButton text="commandButton 1" id="cb1">
<af:clientListener method="showNext" type="action" />
</af:commandButton>
</af:showDetailItem>
<af:showDetailItem id="pane2" text="Panel Label 2">
<af:commandButton text="commandButton 2" id="cb2">
<af:clientListener method="showNext" type="action" />
</af:commandButton>
</af:showDetailItem>
<af:showDetailItem id="pane3" text="Panel Label 3">
<af:commandButton text="commandButton 3" id="cb3">
<af:clientListener method="showNext" type="action" />
</af:commandButton>
</af:showDetailItem>
Javascript
function showNext(evt){
var src = evt.getSource();
var showDetailItemNode = src.getParent(); // targets the showDetailItem tag
/* how do I trigger the click event of this node */
}
Więc w zasadzie to, co staram się osiągnąć to, że po naciśnięciu przycisku # CB1 kliknięciu, chcę symulować kliknięcie zdarzenie showDetailItem # pane1 i tak dalej ...
Jak napisać JavaScript zależy na drzewie DOM HTML (prawdopodobnie już wiesz, JS działa w przeglądarce internetowej, a nie w serwer WWW). Bardzo niewiele osób korzysta z Oracle ADF, a jeszcze więcej osób mogłoby spróbować samodzielnie lub powiedzieć z góry, jak wygląda wygenerowany wynik HTML powyższego XHTML. Inne osoby nie są zainteresowane instalowaniem Oracle ADF tylko po to, aby zorientować się w faktycznym wygenerowanym wyjściu HTML. Innymi słowy, masz więcej szans na odpowiedź, jeśli umieścisz wygenerowany wynik HTML lub całkowicie zmienisz pytanie tak, aby zawierało kod HTML w prawdziwym smaku i retargetingu MCVE u użytkowników [html] '. – BalusC
@ BalusC Wystarczająco fair. Ale zakładam, że używanie javascript na wygenerowanym kodzie HTML nie byłoby najlepszą praktyką do naśladowania (nawet gdyby to działało), ponieważ ADF ma swój własny zalecany sposób obsługi interakcji po stronie klienta. Używanie javascript na wygenerowanym HTML jest opcją i jest to coś, co mogę zrobić sam, ale nie będę postępować zgodnie z podejściem podanym w dokumentacji ADF; tj. za pomocą znacznika 'clientListener'. – asprin
Nie jestem pewien, czy to jest odpowiedź, ponieważ nie wiem nic o ADF, nie mówiąc już o wygenerowanym przez niego wyjściu HTML, ale może to być pomocne wskazanie we właściwym kierunku: jeśli dany element HTML DOM ma atrybut 'onclick', to możesz wyzwolić go za pomocą 'element.onclick()'. Lub, jeśli chcesz zasymulować kliknięcie myszą na elemencie HTML DOM, po prostu wykonaj 'element.click()', który uruchomi jego 'onclick', jeśli taki istnieje, a następnie zapisz w drzewie DOM, w zależności od jego powrotu wartość. – BalusC