Search code examples
asp.netweb-servicescascadingdropdown

How to pass an additional parameter to CascadingDropDown ServiceMethod?


I have two chained CascadingDropDowns. Both are working fine. The thing is that in the underlying web methods which are supplying values for DropDwonList I need read one additional parameter. This parameter is needed for setting up the default item for dropdownlist.

I do not know how to pass that parameter or read it. I've read on the Internet about the ContextKey property. But I do not know how to acces it from the WebMethod.

I've tried to get to the session through HttpContext.Current.Session (hoping that I could extract some parameter from the session) but it seams that the Session is different for the WebPage and WebMethod.

So I am lost here, any ideas?


Solution

  • You need three things to get the ContextKey to work.

    1. Set UseContextKey property on the CascadingDropDown to true
    2. Change the method signature of your webmethod to accept the contextKey parameter:

    public CascadingDropDownNameValue[] GetDropDownContents( string knownCategoryValues, string category, string contextKey) { ... }

    NOTE: The parameter has to be exact casing.

    1. Set the ContextKey using JavaScript. The AJAX CascadingDropDown exposes getter/setter for this property in the DOM:

      document.getElementById('idOfCDDL').set_contextKey('valueyouwant');

    HTH.