在Ajax控件工具包级联下拉更新 [英] in Cascading dropdown update in Ajax Control Toolkit
本文介绍了在Ajax控件工具包级联下拉更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我收到[MethodError 500]当我使用级联下拉。下面是我的code
< TR>
&所述; TD>
选择主机托管服务提供商:
< / TD>
&所述; TD>
< ASP:DropDownList的ID =ddlFeaturedHoster=服务器>< / ASP:DropDownList的>
< / TD>
< / TR>
< ajaxToolkit:CascadingDropDown ID =cddHoster=服务器的TargetControlID =ddlFeaturedHoster
PromptText =选择主机托管服务提供商LoadingText =载入中...分类=ActiveHoster
ServiceMethod =GetDropDownContentsServicePath =〜/主机/ HostingService.asmx/>
服务code:
[的WebMethod]
[ScriptMethod]
公共CascadingDropDownNameValue [] GetActiveHosters()
{ 清单< CascadingDropDownNameValue> returnList =新的List< CascadingDropDownNameValue>();
HostersManager hosterManager =新HostersManager();
清单< Hosters_HostingProviderDetail>托管= hosterManager.GetAllHosters();
returnList.Add(新CascadingDropDownNameValue( - 请选择一个 - ,0,真));
的foreach(在托管Hosters_HostingProviderDetail项)
{
returnList.Add(新CascadingDropDownNameValue(){名称= item.HostingProviderName,值= item.HosterID.ToString()});
}
返回returnList.ToArray();
}
[的WebMethod]
[ScriptMethod]
公共CascadingDropDownNameValue [] GetDropDownContents(字符串knownCategoryValues,串类)
{
knownCategoryValues = FormatCategoryWord(knownCategoryValues);
清单< CascadingDropDownNameValue>值=新的List< CascadingDropDownNameValue>();
HostersManager hosterManager =新HostersManager();
开关(类别)
{
案ActiveHoster:
values.AddRange(GetActiveHosters());
打破;
案ActiveOffer:
values.AddRange(GetActiveOffers(1));
打破;
}
返回values.ToArray< CascadingDropDownNameValue>(); } ///<总结>
///格式化类别词
///< /总结>
///< PARAM NAME =值>< /参数>
///<&回报GT;< /回报>
私人字符串FormatCategoryWord(字符串值)
{
如果(string.IsNullOrEmpty(值))的返回值;
如果(value.LastIndexOf(:)大于0)的值= value.Substring(value.LastIndexOf(:)+ 1);
如果(value.LastIndexOf(;)大于0)的值= value.Substring(0,value.LastIndexOf(;));
返回值;
}}
解决方案
谈谈你的webMethods内一些尝试catch块一些异常记录?
I am getting [MethodError 500] when I use cascading drop down. below is my code
<tr>
<td >
Select a Hoster:
</td>
<td>
<asp:DropDownList ID="ddlFeaturedHoster" runat="server" ></asp:DropDownList>
</td>
</tr>
<ajaxToolkit:CascadingDropDown ID="cddHoster" runat="server" TargetControlID="ddlFeaturedHoster"
PromptText="Select a Hoster" LoadingText="Loading ..." Category="ActiveHoster"
ServiceMethod="GetDropDownContents" ServicePath="~/Hosting/HostingService.asmx"/>
Service Code:
[WebMethod]
[ScriptMethod]
public CascadingDropDownNameValue[] GetActiveHosters()
{
List<CascadingDropDownNameValue> returnList = new List<CascadingDropDownNameValue>();
HostersManager hosterManager = new HostersManager();
List<Hosters_HostingProviderDetail> hosters = hosterManager.GetAllHosters();
returnList.Add(new CascadingDropDownNameValue("--Please Select One--","0",true));
foreach (Hosters_HostingProviderDetail item in hosters)
{
returnList.Add(new CascadingDropDownNameValue() { name=item.HostingProviderName, value= item.HosterID.ToString()});
}
return returnList.ToArray() ;
}
[WebMethod]
[ScriptMethod]
public CascadingDropDownNameValue[] GetDropDownContents(string knownCategoryValues, string category)
{
knownCategoryValues = FormatCategoryWord(knownCategoryValues);
List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
HostersManager hosterManager = new HostersManager();
switch (category)
{
case "ActiveHoster":
values.AddRange(GetActiveHosters());
break;
case "ActiveOffer":
values.AddRange(GetActiveOffers(1));
break;
}
return values.ToArray<CascadingDropDownNameValue>();
}
/// <summary>
/// Formats the category word
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
private string FormatCategoryWord(string value)
{
if (string.IsNullOrEmpty(value)) return value;
if (value.LastIndexOf(":") > 0) value = value.Substring(value.LastIndexOf(":") + 1);
if (value.LastIndexOf(";") > 0) value = value.Substring(0, value.LastIndexOf(";"));
return value;
}
}
解决方案
How about some try catch blocks within your webMethods with some exception logging?
这篇关于在Ajax控件工具包级联下拉更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文