2012-11-04 78 views
1

我想從Ajax Control Toolkit中使用非常基本的CascadingDropDown。我試圖實現的是讓用戶從下拉列表中選擇「州」和「城市」。 CascadingDropDown代碼如下所示。asp.net Ajax Toolkit CascadingDropdown - 未知的web方法

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內部服務器錯誤而失敗。使用小提琴手我可以看到以下錯誤「未知的網絡方法GetDropDownContents」。但是我的代碼隱藏文件中已經有了Web方法GetDropDownContents(),並且也被標記爲[WebMethod]。

那麼,爲什麼填充下拉請求找不到我在代碼隱藏文件中的Web方法。

更新 這裏是鏈接到演示CascadingDropDown

更新-2 類聲明。

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

你使用的是web服務嗎? – Mate

+0

不,我在我的代碼隱藏文件中有方法 – Jatin

+0

好的,在該示例中使用webservice,並且您使用的是從System.Web.UI.Page繼承的類嗎?你能告訴我們包含方法的類的聲明GetDropDownContents – Mate

回答

0

您的頁面上啓用了pagemethods的腳本管理器嗎?

+0

如果能幫助解決他的問題,可能會是一個答案!所以還不知道:-P –

+0

@NikolajZander我確實有ScriptManager。 – Jatin

2

GetDropDownContents方法必須是靜態的

相關問題