3 votes

Kendo grid, changer le texte sur le bouton d'édition

J'ai un tableau kendo qui ressemble un peu à ceci (code édité pour plus de clarté):

    var gridList = $('##listBo').kendoGrid({

        ...

        columns: [
            ...
            {
                command: "edit"
                , title: 'Edit' // Besoin de rendre ce texte conditionnel
                , width: 91
            }
        ]

        ...

        , editable: {
                mode: "popup"
                , template: $("##addEditPopup").html()
                , window: {
                open: loadJSOnWindowLaunch 
                , title: "Demande de réservation"
            }
            }
        , dataBound: function(e) {
            dataBoundFunction();
        }

    }).data("kendoGrid");

J'ai besoin que le bouton dise 'Edit' dans certaines circonstances et 'View' dans d'autres, en fonction des valeurs dans la source de données.

Comment puis-je le faire au mieux?

3voto

R.K.Saini Points 2150

Une approche simple pour gérer cette situation est de créer une colonne de commande personnalisée et ensuite d'utiliser l'option template pour afficher le bouton de la colonne selon votre condition.

Essayez comme ceci :

$("#grid").kendoGrid({
                    dataSource: dataSource,
                    pageable: true,
                    height: 550,
                    toolbar: ["create"],
                    columns: [
                        { field:"ProductName", title: "Nom du produit" },
                        { field: "UnitPrice", title:"Prix unitaire", format: "{0:c}", width: "120px" },
                        { field: "UnitsInStock", title:"Unités en stock", width: "120px" },
                        { field: "Discontinued", width: "120px" },
                        { template: comandTemplate }],
                    editable: "popup"
                });
            });
            // afficher le bouton de la colonne de commande en fonction de la condition
            function comandTemplate(model){
                // ici j'utilise l'attribut Discontinued du modèle de données pour afficher
                // le bouton de détail ou le bouton d'édition
                if(model.Discontinued==0)
                {
                    return 'Editer';
                }
                else
                {
                    return 'Voir les détails';
                }
            }
            // Action personnalisée si le bouton de détail est cliqué
            function viewDetailsAction()
            {
                alert("Votre action personnalisée pour afficher les détails");
            }

Voici un exemple fonctionnel http://dojo.telerik.com/AdAKO

J'espère que cela vous aidera.

0voto

Punit Points 395

Vous avez juste besoin d'ajouter une colonne personnalisée dans les colonnes comme ceci

{ 
   template: "# if (property == true) { # Modifier # } else { #
   Voir # } #", width: "150px"
}
  • où "property" est un champ qui sera utilisé comme champ de condition pour afficher différents boutons.

J'espère que cela fonctionnera pour vous. (Pouce levé)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X