Muszę kliknąć a następnie wybrać / odznaczyć wszystkie pola wyboru za pomocą CardService.

Jak wdrożyć funkcję obsługi onclick?

Próbowałem z:

function handlerOfButtonClick(e) {
    var selectAll = CardService.newSelectionInput()
        .setType(CardService.SelectionInputType.CHECK_BOX)
        .setFieldName("select_all")
        .addItem("Select all", "selectAll", false).setOnChangeAction(CardService.newAction()
            .setFunctionName("handleSelectAll"));

    var checkboxGroup = CardService.newSelectionInput()
        .setType(CardService.SelectionInputType.CHECK_BOX)
        .setTitle("A group of checkboxes. Multiple selections are allowed.")
        .setFieldName("checkbox_field")
        .addItem("checkbox one title", "checkbox_one_value", false)
        .addItem("checkbox two title", "checkbox_two_value", true)
        .addItem("checkbox three title", "checkbox_three_value", true);

    var section = CardService.newCardSection().addWidget(selectAll).addWidget(checkboxGroup)
    var card = CardService.newCardBuilder().addSection(section);
    var navigation = CardService.newNavigation().pushCard(card.build());
    var actionResponse = CardService.newActionResponseBuilder().setNavigation(navigation);
    return actionResponse.build();
}

function handleSelectAll(e) {
    //????? 
}
1
Code Guy 26 październik 2020, 10:43

1 odpowiedź

Najlepsza odpowiedź

Możesz użyć metody UpdateCard (Card)

Pozwala to na wymianę wbudowanej karty w wersji, w której sprawdzane są wszystkie pola wyboru (które jest takie do true).

Próba:

function handleSelectAll(e) {
    
    var checkboxGroup = CardService.newSelectionInput()
        .setType(CardService.SelectionInputType.CHECK_BOX)
        .setTitle("A group of checkboxes. Multiple selections are allowed.")
        .setFieldName("checkbox_field")
        .addItem("checkbox one title", "checkbox_one_value", true)
        .addItem("checkbox two title", "checkbox_two_value", true)
        .addItem("checkbox three title", "checkbox_three_value", true);

    var section = CardService.newCardSection().addWidget(selectAll).addWidget(checkboxGroup)
    var card = CardService.newCardBuilder().addSection(section);

    return CardService.newNavigation().updateCard(card.build());
}
3
ziganotschka 26 październik 2020, 11:48