Utilisation du cascading sur les champs "Liste déroulante" d'un tableau de ligne de détail entièrement standard
Depuis la version .net 2019.3, il est désormais possible d’effectuer du cascading de données dans un champ « Liste déroulante » sur un tableau de ligne de détails entièrement standard.
Pour ce faire, il vous suffit juste d’insérer la valeur du champ voulu dans votre requête SQL du champ « Liste déroulante » grâce à cet appel qui est : ‘@NOM_DU_CHAMP@’ Par exemple ci-dessous nous voulons récupérer la valeur du champ « PROCESSUS » pour n’afficher dans la liste déroulante uniquement les sous processus qui concerne ce processus.

Donc comme ci-dessus nous avons inséré la valeur du champ en ajoutant simplement .
ATTENTION !
Il existe cependant un bug qui n’a pas encore été corrigé lors de cette rédaction.
Si le mode d’édition de votre tableau est en mode inline vous n’aurez aucun problème.
Mais si vous utilisez un autre mode, par exemple le mode d’édition « EditForm »
Vous aurez donc une erreur Javascript qui empêchera le rafraichissement de la liste déroulante et par conséquent le cascading ne fonctionnera pas.
Pour s’assurer du bon fonctionnement de celui-ci en attendant la correction du produit, il vous faut ajouter le bout de code suivant dans l’événement Javascript « Init » du premier champ de votre tableau.
ASPxGridViewDropDownListCascadingSelectedIndexChanged = function ASPxGridViewDropDownListCascadingSelectedIndexChanged(s, e, columnName) {
try {
var currentGridView = s.GetParentControl();
var value = s.GetValue();
currentGridView.GetEditor(columnName).PerformCallback('Cascading|' + value);
}
catch(error) {
//console.error(error);
console.log('Modification of the function "ASPxGridViewDropDownListCascadingSelectedIndexChanged"');
var currentGridView = s.GetParentControl();
currentGridView = currentGridView.GetParentControl();
var value = s.GetValue();
currentGridView.GetEditor(columnName).PerformCallback('Cascading|' + value);
}
}
