C# AutoCompleteXtender正在启动,webservice正在返回结果,但不会显示这些结果
我一直在为这张桌子把头撞在桌子上 我已经在我的网页中添加了一个AutoCompleteXtender,并实现了webservice方法来调用它。到目前为止,一切顺利 使用Fiddler,我检查了调试时是否调用了webservice方法,并返回了我希望看到的结果。。但是没有任何东西被渲染到屏幕上,没有下拉菜单 这里有没有人能提出我可能做错了什么,或者提出一些建议,让我尝试一下,因为我现在很难办: 在网页中声明AutoCompleteXtender:C# AutoCompleteXtender正在启动,webservice正在返回结果,但不会显示这些结果,c#,asp.net,autocompleteextender,C#,Asp.net,Autocompleteextender,我一直在为这张桌子把头撞在桌子上 我已经在我的网页中添加了一个AutoCompleteXtender,并实现了webservice方法来调用它。到目前为止,一切顺利 使用Fiddler,我检查了调试时是否调用了webservice方法,并返回了我希望看到的结果。。但是没有任何东西被渲染到屏幕上,没有下拉菜单 这里有没有人能提出我可能做错了什么,或者提出一些建议,让我尝试一下,因为我现在很难办: 在网页中声明AutoCompleteXtender: 为完整起见,以下是Webservice方法:
为完整起见,以下是Webservice方法:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] GetListOfSettings(string prefixText, int count)
{
string[] suggestedSettings = new string[0];
List<string> settingNames = new List<string>();
List<AgencyApplicationClientSetting> settings = AgencyApplicationClientSetting.All().ToList<AgencyApplicationClientSetting>();
foreach(AgencyApplicationClientSetting setting in settings)
{
if((setting.SettingName.ToLower().StartsWith(prefixText.ToLower())) && (!settingNames.Contains(setting.SettingName)))
{
settingNames.Add(setting.SettingName);
}
}
if(settingNames.Count > 0)
{
suggestedSettings = settingNames.ToArray();
}
return suggestedSettings;
}
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
公共字符串[]GetListOfSettings(字符串前缀,整数计数)
{
string[]suggestedSettings=新字符串[0];
列表设置名称=新列表();
列表设置=代理应用程序客户端设置.All().ToList();
foreach(设置中的AgencyApplicationClient设置)
{
if((setting.SettingName.ToLower().StartsWith(prefixText.ToLower())&&(!settingNames.Contains(setting.SettingName)))
{
settingNames.Add(setting.SettingName);
}
}
如果(settingNames.Count>0)
{
suggestedSettings=settingNames.ToArray();
}
返回建议的设置;
}
好吧,最后(有点恼人地)这变成了一个z索引时间。
我不确定默认情况下使用AjaxControlToolkit的ModalPopupXtender显示的对话框的z索引是什么(我在页面上看到的最高z索引是10001)。。但在幕后的某个地方,它被赋予了一个属性,这意味着我的弹出式建议(来自AutoCompleteXtender)总是在对话框后面呈现(但在我返回足够的结果以从对话框下面获得建议之前,我无法看到这一点)。
最后,我不得不覆盖ModalPopupXtender用作对话框的面板的z索引和AutoCompleteXtender的CompletionListCssClass,因此:
.popUpDialog
{
z-index: 99 !important;
}
.autoComplete_listMain
{
z-index: 2147483647 !important;
background: #ffffff;
border: solid 2px #808080;
color: #000000;
}
不管怎么说,这最终很简单,但我想我会和大家分享一下,以防其他人遇到类似的问题 好吧,最后结果是(有点恼人地)一个z指数时间。 我不确定默认情况下使用AjaxControlToolkit的ModalPopupXtender显示的对话框的z索引是什么(我在页面上看到的最高z索引是10001)。。但在幕后的某个地方,它被赋予了一个属性,这意味着我的弹出式建议(来自AutoCompleteXtender)总是在对话框后面呈现(但在我返回足够的结果以从对话框下面获得建议之前,我无法看到这一点)。 最后,我不得不覆盖ModalPopupXtender用作对话框的面板的z索引和AutoCompleteXtender的CompletionListCssClass,因此:
.popUpDialog
{
z-index: 99 !important;
}
.autoComplete_listMain
{
z-index: 2147483647 !important;
background: #ffffff;
border: solid 2px #808080;
color: #000000;
}
不管怎么说,这最终很简单,但我想我会和大家分享一下,以防其他人遇到类似的问题 我只想确认一下,我的ScriptManager中确实有EnablePartialRendering=“true”-我知道这通常是下拉列表无法正确呈现的常见原因。是否存在任何javascript错误?不,没有报告任何javascript错误。它似乎与webservice方法返回给它的字符串数组没有任何关系..应该有一些代码之外的东西,你可能想看看,因为我接受了你的代码,只是返回了一个硬编码的数组,它工作得很好。您确定您的浏览器没有抑制JS错误吗?您是否在web服务中设置了断点,以查看数据是否以正确的格式返回,或者数据本身是否不正确;我没有可能导致这种情况的字符?我已经在webservice方法中设置了断点,我也在Fiddler中查看了webservice的请求和响应,它肯定会返回。然而,这一技巧确实得到了回报,因为我决定返回一个简单的字符串数组(它返回了10个值,而我的真正代码只返回了一个值),并且由于返回了更多的值,我注意到结果正在显示,尽管隐藏在AutoCompleteXtender所在的对话框后面。只是确认一下我的ScriptManager中确实有EnablePartialRendering=“true”-据我所知,这通常是下拉列表无法正确呈现的常见原因。是否存在任何javascript错误?否,未报告任何javascript错误。它似乎与webservice方法返回给它的字符串数组没有任何关系..应该有一些代码之外的东西,你可能想看看,因为我接受了你的代码,只是返回了一个硬编码的数组,它工作得很好。您确定您的浏览器没有抑制JS错误吗?您是否在web服务中设置了断点,以查看数据是否以正确的格式返回,或者数据本身是否不正确;我没有可能导致这种情况的字符?我已经在webservice方法中设置了断点,我也在Fiddler中查看了webservice的请求和响应,它肯定会返回。然而,这一技巧确实得到了回报,因为我决定返回一个简单的字符串数组(它返回了10个值,而我的真正代码只返回了一个值),而且由于返回了更多的值,我注意到结果正在显示,尽管结果隐藏在AutoCompleteXtender所在的对话框后面。