C# 文本框上的AutoCompleteXtender返回HTML页面
我正在尝试使用Ajax控制工具包AutoCompleteXtender实现搜索文本框。结果应该是与输入的文本匹配的名称列表,但是显示的是页面源HTML,一个字符接一个字符,创建一个非常长的单个字母列表 我已经找到并尝试了几个样品,但无法使其发挥作用。我确信数据库连接是有效的,直接在MSSMS中执行SQL查询时,会返回预期结果。AjaxControlToolkit已安装并在解决方案的其他页面上工作 此问题在(“”)之前被问及。然而,出于简单性和可维护性的原因,我不想像这张海报那样实现Web服务 acex.aspxC# 文本框上的AutoCompleteXtender返回HTML页面,c#,asp.net,ajaxcontroltoolkit,autocompleteextender,C#,Asp.net,Ajaxcontroltoolkit,Autocompleteextender,我正在尝试使用Ajax控制工具包AutoCompleteXtender实现搜索文本框。结果应该是与输入的文本匹配的名称列表,但是显示的是页面源HTML,一个字符接一个字符,创建一个非常长的单个字母列表 我已经找到并尝试了几个样品,但无法使其发挥作用。我确信数据库连接是有效的,直接在MSSMS中执行SQL查询时,会返回预期结果。AjaxControlToolkit已安装并在解决方案的其他页面上工作 此问题在(“”)之前被问及。然而,出于简单性和可维护性的原因,我不想像这张海报那样实现Web服务 a
AutoCompleteXtender-姓氏
acex.aspx.cs
使用System.Collections.Generic;
使用系统配置;
使用系统数据;
使用System.Data.SqlClient;
名称空间MCA
{
公共部分类acex:System.Web.UI.Page
{
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
公共静态列表GetLastNames(字符串前缀)
{
SqlConnection conn=新的SqlConnection(ConfigurationManager.ConnectionString[“DefaultConnection”].ToString());
SqlCommand cmd=new SqlCommand(“从[Entity_Person]中选择[Last_Name],其中[Last_Name]类似于@Name+'%',conn”);
cmd.Parameters.AddWithValue(“@Name”,prefixText);
SqlDataAdapter da=新的SqlDataAdapter(cmd);
DataTable dt=新的DataTable();
conn.Open();
da.填充(dt);
List LastNames=新列表();
对于(int i=0;i
}使用浏览器访问页面时,如
acex.aspx/GetLastNames?prefixText=abc
,您是否看到所需的响应?
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>AutoCompleteExtender - Last Names</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:TextBox ID="txbxLastName" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="txbxLastName"
MinimumPrefixLength="2"
EnableCaching="true"
CompletionSetCount="1"
CompletionInterval="1000"
ServiceMethod="GetLastNames">
</asp:AutoCompleteExtender>
</div>
</form>
</body>
</html>
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace MCA
{
public partial class acex : System.Web.UI.Page
{
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> GetLastNames(string prefixText)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString());
SqlCommand cmd = new SqlCommand("SELECT [Last_Name] FROM [Entity_Person] WHERE [Last_Name] LIKE @Name+'%'", conn);
cmd.Parameters.AddWithValue("@Name", prefixText);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
conn.Open();
da.Fill(dt);
List<string> LastNames = new List<string>();
for (int i = 0; i < dt.Rows.Count; i++)
{
LastNames.Add(dt.Rows[i][0].ToString());
}
return LastNames;
}
}