C# Asp.net ajax autocomplete不使用AutoCompleteXtender
我想在我的文本框中实现C# Asp.net ajax autocomplete不使用AutoCompleteXtender,c#,asp.net,ajax,autocompleteextender,C#,Asp.net,Ajax,Autocompleteextender,我想在我的文本框中实现ajax自动完成功能 我试着像下面一样 <asp:TextBox ID="txtCountry" runat="server"></asp:TextBox> <ajax:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtCountry" ServicePath="~/App_Code/WebService.cs" Mini
ajax自动完成
功能
我试着像下面一样
<asp:TextBox ID="txtCountry" runat="server"></asp:TextBox>
<ajax:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtCountry"
ServicePath="~/App_Code/WebService.cs" MinimumPrefixLength="1" EnableCaching="true" CompletionSetCount="1"
CompletionInterval="1000" ServiceMethod="GetCompletionList">
</ajax:AutoCompleteExtender>
[WebMethod]
public List<string> GetCompletionList(string prefixText)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString());
con.Open();
SqlCommand cmd = new SqlCommand("select Company_name from Outword_CommonMST where Company_name " +
"like '" + prefixText + "%' order by company_name", con);
//cmd.Parameters.AddWithValue("@Name", prefixText);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable( );
da.Fill(dt);
List<string> Company_name = new List<string>();
for(int i=0;i<dt.Rows.Count;i++)
{
Company_name.Add(dt.Rows[i][1].ToString());
}
return Company_name;
}
}
但当我检查它时,它不工作
另外,当我在控制台中检查时,它给出了类似
ScriptResource.axd?d=SMCBRjg8b3pouydxeu-NDM-jiwtmeefry083d5ohjfnwtee0cynytlgzx9w7p4amkpze7gkz-MoV…:6076 POST 403(禁止)
请建议这里有什么问题如下:
[WebMethod]
public string[] GetCompletionList(string prefixText)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString());
con.Open();
SqlCommand cmd = new SqlCommand("select Company_name from Outword_CommonMST where Company_name " +
"like '" + prefixText + "%' order by company_name", con);
//cmd.Parameters.AddWithValue("@Name", prefixText);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable( );
da.Fill(dt);
List<string> Company_name = new List<string>();
for(int i=0;i<dt.Rows.Count;i++)
{
Company_name.Add(dt.Rows[i][0].ToString());
}
return Company_name.ToArray();
}
}
[WebMethod]
公共字符串[]GetCompletionList(字符串前缀)
{
SqlConnection con=新的SqlConnection(ConfigurationManager.ConnectionString[“dbconnection”].ToString());
con.Open();
SqlCommand cmd=new SqlCommand(“从公司名称所在的外部公共MST中选择公司名称”+
“如“'+前缀文本+“%”按公司名称排序,con);
//cmd.Parameters.AddWithValue(“@Name”,prefixText);
SqlDataAdapter da=新的SqlDataAdapter(cmd);
DataTable dt=新的DataTable();
da.填充(dt);
上市公司名称=新上市公司();
对于(inti=0;它的Web服务应该以.asmx结尾,而不是。cs@Dr.Stitch:我也用asmx
添加了它,但现在我得到的错误是ScriptResource.axd?d=smcbrjg8b3peoydxeu-NDM-jiwtmeeffry083dh5ohjfnwtee0cynytlgzx9w7p4amkpze7gkz-MoV…:6076 POSThttp://localhost:55264/PSITERP%20lite/WebService.asmx/GetCompletionList 500(内部服务器错误)
WebService.asmx在哪里?同一个项目还是不同的项目?@Dr.Stitch:它在同一个项目中。请在浏览器中尝试此url。如果没有,它将显示可用的列表方法。这意味着它不会启动。很抱歉,延迟,我收到错误,因为CS0101:命名空间“”在第:-行已包含“WebService”的定义服务:System.Web.Services.WebService{
将类名更改为除WebService以外的任何其他名称。是的,更改了该名称。现在,由于URL的请求格式无法识别,意外以“/GetCompletionList”结尾。控制台中显示,加载资源失败:服务器响应状态为500(内部服务器错误)
它完成了,取代了dt.Rows[i][1]。
我将它改为dt.Rows[i][0]。
它工作了。