我想使用AjaxToolkit AutoCompleteExtender。我的WebService被触发,如果我在返回的值上放置一个断点,我可以看到有数据被返回。但是,AutoCompleteExtender不显示结果。AutoCompleteExtender不显示结果
我读过这个计算器线程:AutoCompleteExtender is firing, webservice is returning results, but these are not being displayed
但是,这个问题的答案并没有解决我遇到的问题。
这里是我的代码:
ASPX
<asp:ToolkitScriptManager ID="asm" runat="server" EnablePageMethods="true" EnablePartialRendering="true"></asp:ToolkitScriptManager>
<asp:UpdatePanel ID="upApprovedBy" runat="server">
<ContentTemplate>
<asp:TextBox id="txtApprovedBy" runat="server" AutoComplete="Off"></asp:TextBox>
<asp:AutoCompleteExtender
runat="server"
ID="ac_txtApprovedBy"
CompletionInterval="500"
TargetControlID="txtApprovedBy"
ServiceMethod="SearchWinUsers"
CompletionSetCount="20"
MinimumPrefixLength="2"
>
</asp:AutoCompleteExtender>
</ContentTemplate>
</asp:UpdatePanel>
ASPX.CS
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static string[] SearchWinUsers(string prefixText, int count)
{
logic common = new logic();
string[] SelectedApprovers = new string[0];
try
{
DataTable dt = new DataTable();
string sql = "SELECT TOP(" + count + ") FirstName + ' ' + LastName AS DisplayName FROM USERSTABLENAME WHERE (IsDeActivated = 0) AND ((FirstName LIKE '%" + prefixText + "%') OR (LastName LIKE '%" + prefixText + "%')) ORDER BY FirstName";
dt = common.getDataTable(sql);
SelectedApprovers = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
SelectedApprovers.SetValue(dr["DisplayName"].ToString(), i);
i++;
}
dt.Dispose();
}
catch (Exception ex)
{
common.alert("Error in page.location.<br>ERROR=" + ex.Message);
}
return SelectedApprovers;
}
任何建议,将不胜感激!
我要指出,在我的ASPX代码片段生命,在这个层次:首页> TabContainer的>的TabPanel> FormView控件>此代码是住在这里
你试过从周围的'AutoCompleteExtender'取出'UpdatePanel'?你不需要这样做Extender异步。 – jadarnel27
我删除了UpdatePanel。同样的结果。 WebService被调用。 SelectedApprovers在代码的返回行中包含数据。前端仍然没有显示任何内容。无论如何谢谢jadarnel27。 – s15199d
没问题,我估计值得一试。 – jadarnel27