DotNetNuke 4.x モジュールを作成していますが、モジュールに AJAX CascadingDropDown が必要です。私はそれを次のように定義しています...
<asp:UpdatePanel runat="server" ID="CascadingDropDowns">
<ContentTemplate>
<asp:DropDownList runat="server" ID="SelectGroupDropDownList">
</asp:DropDownList>
<ajax:CascadingDropDown runat="server" ID="SelectGroupDropDownListExtender" Category="Group"
TargetControlID="SelectGroupDropDownList" PromptText="Select a Group" ServiceMethod="GetGroups">
</ajax:CascadingDropDown>
<!-- more dropdowns & cascadingdropdown extenders here -->
このようにascxのコードビハインドで定義されたページメソッドで...
[WebService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService()]
public partial class EligibilityView : PortalModuleBase
{
[WebMethod]
[ScriptMethod]
public CascadingDropDownNameValue[] GetGroups(string knownCategoryValues, string category)
{
var results = new List<CascadingDropDownNameValue>();
// code here to fill the list with values...
return results.ToArray();
}
ページを実行すると、「[メソッド エラー 500]」が表示され、何が間違っているのかわかりません。問題は、ページ自体ではなくASCXコントロール内で定義されているため、ページがwebmethodを見つけることができないことだと思います。ASMX サービスを作成するのではなく、このように定義しておく必要があります。これは、DotNetNuke 用のモジュールにコンパイルされ、モジュール内で物事をシンプルに保ちたいためです。
どんな提案でも大歓迎です。