logo-softwarestudio-2020-600

j_insert_update – zaawansowane programowanie – zmiana funkcji przycisków

W dzisiejszej erze cyfrowej możliwość łatwego manipulowania obiektami w formularzu lub oknie może otworzyć przed programistami cały świat możliwości. Dzięki platformie StudioSystem programiści mają dostęp do potężnego zestawu narzędzi, dzięki którym manipulowanie obiektami na formularzu jest proste i intuicyjne.

Transakcja j_insert_update.aspx posiada listę poleceń (przycisków) w górnym pasku, każdy z przycisków może być wyświetlany lub ukrywany, ale domyślnie posiada przypisaną funkcję jaka zostaje wykonana w momencie gdy użytkownik kliknie na dany przycisk. Za pomocą funkcji java script możemy napisać własną funkcję i podmienić wywołanie – zmieniając w ten sposób działanie transakcji.

Poniższy artykuł prezentuje sposób zamiany domyślnej funkcji wykonywanej przez program gdy użytkownik kliknie na przycisk ZAPISZ, na własną funkcję która może zrobić cokolwiek programista zechce.

Standardowo uruchamiana jest funkcja SendForm(’1′), gdzie jako parametr '1′ przekazywana jest wartość która zostaje zapisana w kolumnie ACH (stan rekordu, 1 oznacza zatwierdzony).

Modyfikację rozpoczynamy od ustawienia parametrów, script i onscriptready (patrz poprzednie artykuły dotyczące zaawansowanego programowania transakcji j_insert_update.aspx). W pliku własnego skryptu dodajemy w funkcji uruchamianej onscriptready np.

function MojaOnReady() {
$("#ctl00_ContentPlaceHolder1_ButtonZapisz").attr("onclick", "return MojaZapisz();");
}

gdzie ctl00_ContentPlaceHolder1_ButtonZapisz to nazwa przycisku, a MojaZapisz to funkcja jaka ma być uruchomiona zamiast domyślnej.

przygotujmy więc w kolejnym kroku naszą prostą funkcję MojaZapisz() jaka ma być uruchomiona, w dołączonym pliku ze skryptami js dodajemy funkcje, której zadaniem będzie tylko wyświetlić okno z komunikatem:

function MojaZapisz() {
JqxAlert(„Tytuł okna”, „moja funkcja uruchamiana na klik ZAPISZ”)
return false;
}

i gotowe, uruchamiamy program i testujemy działanie, na pierwszy rzut oka nic się nie zmienia, formularz wygląda tak samo, jednk gdy klikniemy na przycisk polecenia ZAPISZ zamiast weryfikacji i zapisu danych wyświetlony zostanie komunikat w oknie:

parametr scriptonready button zapisz

Zmiana treści / opisu na przycisku

Domyślnym tekstem wyświetlanym na przycisku do zapisywania danych jest ZAPISZ, za pomocą prostego polecenia JQuery możemy zmienić na inny tekst. Przykładowo naszą funkcję uruchamianą jako onscriptready (MojaOnReady) zmieniamy na:

function MojaOnReady() {
$("#ctl00_ContentPlaceHolder1_ButtonZapisz").attr("onclick", "return MojaZapisz();");
$("#ctl00_ContentPlaceHolder1_ButtonZapisz").text("Wyświetl okno");
}

Za pomocą polecenia text zmieniamy opis przycisku na „Wyświetl okno”

parametr scriptonready button wyświetl okno

Zwróć uwagę, że zmienił się zarówno tekst przycisku, jak i teraz nie ma on ikonki z dyskietką. Jeżeli chcesz mieć nowy tekst oraz ikonkę, musisz inaczej przygotować funkcję:

function MojaOnReady() {
$("#ctl00_ContentPlaceHolder1_ButtonZapisz").attr("onclick", "return MojaZapisz();");
$("#ctl00_ContentPlaceHolder1_ButtonZapisz").html("<img src='/images_m/16x16/floppy_disk.png'/>Wyświetl okno");
}

W efekcie otrzymamy:

parametr scriptonready button wyświetl okno ikonka

Zmiana klasy formatującej wygląd przycisku

Standardowo przycisk ZAPISZ kolorowany jest jako ciemnozielony, możemy podmieniając klasę formatującą z CSS spowodować inny wygląd przycisku.

Kolejny raz zmieniamy funkcje

function MojaOnReady() {
$("#ctl00_ContentPlaceHolder1_ButtonZapisz").attr("onclick", "return MojaZapisz();");
$("#ctl00_ContentPlaceHolder1_ButtonZapisz").html("<img src='/images_m/16x16/floppy_disk.png'/>Wyświetl okno");
$("#ctl00_ContentPlaceHolder1_ButtonZapisz").attr("class", "art-button");
}

Ustawiamy klasę CSS na domyślny styl przycisku: art-button, w efekcie otrzymamy

parametr scriptonready button class

lub zmieniając na

function MojaOnReady() {
$("#ctl00_ContentPlaceHolder1_ButtonZapisz").attr("onclick", "return MojaZapisz();");
 $("#ctl00_ContentPlaceHolder1_ButtonZapisz").html("<img src='/images_v/16x16/floppy_disk.png'/>Wyświetl okno");
 $("#ctl00_ContentPlaceHolder1_ButtonZapisz").attr("class", "art-button art-buttonSiberia");
}
parametr scriptonready button class siberia

Podsumowanie

Za pomocą dodawanych własnych skryptów można nie tylko zmieniać sposób wyświetlania danych w transakcji, ale zmieniać sposób działania przycisków poleceń ZAPISZ, BUFOR czy ANULUJ.