Comment passer un paramètre supplémentaire à CascadingDropDown ServiceMethod?
-
27-09-2019 - |
Question
J'ai deux CascadingDropDowns
enchaînée. Les deux fonctionnent très bien.
La chose est que dans les méthodes Web sous-jacents qui sont Affecter des valeurs pour DropDwonList
je besoin de lire un paramètre supplémentaire. Ce paramètre est nécessaire pour la mise en place l'élément par défaut pour dropdownlist.
Je ne sais pas comment passer ce paramètre ou lire.
Je l'ai lu sur Internet au sujet de la propriété ContextKey
. Mais je ne sais pas comment il accès du WebMethod
.
J'ai essayé de se rendre à la session par HttpContext.Current.Session
(en espérant que je pourrais extraire certains paramètres de la session), mais il coutures que la session est différente pour les WebPage
et WebMethod
.
Je suis perdu ici, des idées?
La solution
Vous avez besoin de trois choses pour obtenir le contextKey au travail.
- Set UseContextKey propriété sur la CascadingDropDown true
- Modifier la signature de la méthode de votre webmethod pour accepter le paramètre contextKey:
public CascadingDropDownNameValue[] GetDropDownContents(
string knownCategoryValues, string category, string contextKey) { ... }
NOTE:. Le paramètre doit être boîtier exacte
-
Définissez le contextKey en utilisant JavaScript. Le AJAX CascadingDropDown expose getter / setter de cette propriété dans le DOM:
document.getElementById('idOfCDDL').set_contextKey('valueyouwant');
HTH.
Autres conseils
arguments additionnels Parfois, la méthode d'action qui fournit le JSON pour le combobox peut avoir besoin des arguments supplémentaires. Voici comment les transmettre à votre action: CopyPassing arguments supplémentaires à la méthode d'action
function onComboBoxDataBinding(e) {
e.data = $.extend({}, e.data, { customParam: "customValue"});
}
Dans votre fichier .cs écriture:
cascadingdropdown1.contextKey=<parameter you need>
Ensuite, dans l'utilisation de la méthode Web qui contextKey