C# AjaxControlToolkit AutoCompleteXtender列表未显示在Google Chrome中
使用下面的代码,我成功地在Firefox和IE的文本框中显示自动完成列表,但在google chrome中没有显示。请帮助我。 正在成功检索数据库中的数据。我调试了它,没有错误C# AjaxControlToolkit AutoCompleteXtender列表未显示在Google Chrome中,c#,html,ajaxcontroltoolkit,C#,Html,Ajaxcontroltoolkit,使用下面的代码,我成功地在Firefox和IE的文本框中显示自动完成列表,但在google chrome中没有显示。请帮助我。 正在成功检索数据库中的数据。我调试了它,没有错误 <style type="text/css"> .AutoExtender { font-size: 12px; color: #000; padding: 3px 5px; border: 1px solid #999; background:
<style type="text/css">
.AutoExtender
{
font-size: 12px;
color: #000;
padding: 3px 5px;
border: 1px solid #999;
background: #fff;
width: auto;
float: left;
z-index: 9999999999;
position:absolute;
margin-left:0px;
list-style: none;
font-weight: bold;
}
.listItem {
color: #191919;
}
.itemHighlighted {
background-color: #ADD6FF;
}
</style>
<asp:TextBox ID="TextBox1" placeholder="SELECT * FROM TABLEA" class="enjoy-css" runat="server" autocomplete="off" TextMode="multiline">
</asp:TextBox>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<AjaxControlToolkit:AutoCompleteExtender
runat="server"
ID="AutoCompleteExtender1"
BehaviorID="AutoCompleteExtender1"
TargetControlID="TextBox1"
ServiceMethod="AutoCompleteAjaxRequest"
ServicePath="AutoComplete.asmx"
MinimumPrefixLength="3"
CompletionInterval="100"
EnableCaching="true"
CompletionSetCount="100"
CompletionListCssClass="AutoExtender"
CompletionListItemCssClass="listItem"
FirstRowSelected="true"
CompletionListHighlightedItemCssClass="itemHighlighted"
DelimiterCharacters=";, :\n\r"
showonlycurrentwordincompletionlistitem="true"
>
</AjaxControlToolkit:AutoCompleteExtender>
自动完成web服务
public string[] AutoCompleteAjaxRequest(string prefixText, int count)
{
Match match;
match = Regex.Match(prefixText, "(\\w+)$");
List<string> ajaxDataCollection = new List<string>();
if (match.Success)
{
String Query = "SELECT TABLE_NAME FROM(select TABLE_NAME from INFORMATION_SCHEMA.COLUMNS UNION select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS ) COLUMN_NAME WHERE TABLE_NAME like '%" +match.Value+"%';";
DataTable dt = this.GetData(Query, CreateConnectionString(UserName, Password, DatabaseName, DataSource));
if (dt.Rows.Count > 0)
{
int countt = dt.Rows.Count;
for (int i = 0; i < countt; i++)
{
ajaxDataCollection.Add(dt.Rows[i]["TABLE_NAME"].ToString());
}
}
ajaxDataCollection.Add("SELECT");
ajaxDataCollection.Add("WHERE");
ajaxDataCollection.Add("UPDATE");
ajaxDataCollection.Add("INSERT");
ajaxDataCollection.Add("DELETE");
ajaxDataCollection.Add("EXEC");
ajaxDataCollection.Add("FROM");
ajaxDataCollection.Add("VALUES");
ajaxDataCollection.Add("HAVING");
return ajaxDataCollection.ToArray();
}
以下是我在代码中观察到的几点: 将以下内容添加到自动完成web服务中,并使您的web服务方法成为静态的
我删除了AjaxControlToolKit dll文件,并使用Nuget再次安装了它,它工作正常。。。我猜下载/引用以前的dll文件时出错。我已经在这样做了。。我没有发布整个web服务的代码,只是发布了AutoCompleteXtender使用的服务方法。我将尝试使该方法为staticyes for service Method添加这些[System.web.Script.Services.ScriptMethod][System.web.Services.WebMethod]否成功:/,即使在Firefox中,这个列表也不再显示我在我的项目中实现了同样的功能,可以很好地工作。
[System.Web.Script.Services.ScriptMethod]
[System.Web.Services.WebMethod]
public static string[] AutoCompleteAjaxRequest(string prefixText, int count)