1

AjaxControlToolkitの非常に基本的なCascadingDropDownを使用しようとしています。私が実装しようとしているのは、ユーザーがドロップダウンから「州」と「市」を選択できるようにすることです。CascadingDropDownコードを以下に示します。

    State : <asp:DropDownList ID="DdlState" runat="server" />
    <asp:CascadingDropDown ID="CddState" runat="server" TargetControlID="DdlState" Category="State"
    EmptyText="Select State" EmptyValue="0" ServiceMethod="GetDropDownContents" 
    />

    City : <asp:DropDownList ID="DdlCity" runat="server" />
    <asp:CascadingDropDown ID="CddCity" runat="server" TargetControlID="DdlCity" ParentControlID="DdlState" Category="City"
    EmptyText="Select City" EmptyValue="0" ServiceMethod="GetDropDownContents"
    />

そしてこれが私がコードビハインドに持っているものです

[WebMethod]
[System.Web.Script.Services.ScriptMethod]
public CascadingDropDownNameValue[] GetDropDownContents(string knownCategoryValues, string category) {
    if (category.Equals("State")) {
        StateManager stateManager = new StateManager(null);
        List<CascadingDropDownNameValue> states = new List<CascadingDropDownNameValue>();
        foreach (State state in stateManager.GetQueryableStates().ToList()) {
            states.Add(new CascadingDropDownNameValue(state.Name, state.Id.ToString()));
        }
        return states.ToArray();
    } else {
        CityManager cityManager = new CityManager(null);
        List<CascadingDropDownNameValue> cities = new List<CascadingDropDownNameValue>();
        foreach (City city in cityManager.GetQueryableCities()
                             .Where(c => c.State.Id == 1))) {
            cities.Add(new CascadingDropDownNameValue(city.Name,city.Id.ToString()));
        }
        return cities.ToArray();
    }
}

上記のコードは500内部サーバーエラーで失敗しています。フィドラーを使用すると、次のエラー「不明なWebメソッドGetDropDownContents」が表示されます。しかし、コードビハインドファイルにはすでにWebメソッドGetDropDownContents()があり、[WebMethod]としてもマークされています。

それで、なぜpopulateドロップダウンリクエストは、コードビハインドファイルにあるWebメソッドを見つけられないのですか?

更新 ここにデモCascadingDropDownへのリンクがあります

Update-2 クラス宣言。

public partial class Index : System.Web.UI.Page
{
    ....
}
4

2 に答える 2

2

メソッドはGetDropDownContents静的でなければなりません

于 2012-11-04T21:54:33.167 に答える
0

ページでpagemethodsが有効になっているscriptmanagerがありますか?

于 2012-11-04T01:53:25.980 に答える