AutoCompleteExtender正在触发,webservice正在返回结果,但这些结果未显示

我一直在这张桌子上撞着桌子。

我已经在我的网页上添加了一个AutoCompleteExtender,并实现了webservice方法来调用它。 到现在为止还挺好。

使用Fiddler,我已经检查过,在调试时,正在调用webservice方法并返回我希望看到的结果..但是没有任何东西被渲染到屏幕上,没有下拉?

任何人都可以在这里建议我可能做错了什么,或提出一些建议,因为我目前难倒:

网页中的AutoCompleteExtender声明:

<cc1:AutoCompleteExtender runat="server" ID="lookupAgencyAppSettingName" TargetControlID="txtAgencyAppSettingName" ServiceMethod="GetListOfSettings"
ServicePath="~/Authenticated/AJAXMethods.asmx" MinimumPrefixLength="1" CompletionInterval="500" EnableCaching="true" />

为了完整起见,这是Webservice方法:

 [System.Web.Services.WebMethod] [System.Web.Script.Services.ScriptMethod] public string[] GetListOfSettings(string prefixText, int count) { string[] suggestedSettings = new string[0]; List settingNames = new List(); List settings = AgencyApplicationClientSetting.All().ToList(); 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; } 

好吧,最终这有点令人讨厌(Z-index)时间。 我不确定使用AjaxControlToolkit的ModalPopupExtender显示的对话框默认是什么z-index(我在页面上可以看到的最高z-index是10001)..但是在幕后的某个地方给它一个属性这意味着我的弹出建议(来自AutoCompleteExtender)总是在对话框后面呈现(但是在我返回足够的结果以从对话框下方获得建议之前看不到这一点)。 最后,我必须覆盖由ModalPopupExtender和AutoCompleteExtender的CompletionListCssClass用作对话框的面板的z-index,因此:

  .popUpDialog { z-index: 99 !important; } .autoComplete_listMain { z-index: 2147483647 !important; background: #ffffff; border: solid 2px #808080; color: #000000; } 

无论如何,最后烦人的简单,但我想分享以防万一其他人遇到类似的问题!