【发布时间】:2013-11-06 21:01:36
【问题描述】:
我在文本框上有一个自动完成扩展器,它将记录显示为来自数据库的列表,但是当我单击 texbox 并开始输入任何内容时。我的html代码是
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server"
Enabled="True" TargetControlID="TextBox1" ServicePath="~/WebService.asmx"
ServiceMethod="GetCompletionList"
MinimumPrefixLength="2"
CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="20"
DelimiterCharacters=";, :"
ShowOnlyCurrentWordInCompletionListItem="true" >
</asp:AutoCompleteExtender>
我的网络服务是
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using MySql.Data.MySqlClient;
using System.Configuration;
/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
public WebService () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public static List<string> GetCompletionList(string prefixText, int count)
{
MySqlConnection con = new MySqlConnection(ConfigurationManager.AppSettings["cn"]);
if (con.State == ConnectionState.Closed)
con.Open();
MySqlCommand cmd = new MySqlCommand("SELECT gotra FROM tbgotra WHERE gotra LIKE '%" + prefixText + "%'",con);
List<string> k = new List<string>();
using (MySqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
k.Add(sdr["gotra"].ToString());
}
}
con.Close();
return k;
}
}
【问题讨论】:
-
能不能把database.asmx的代码也放上来?
-
我正在通过我的服务方法从数据库中调用对象列表。这是上面给出的。
-
对不起,我的意思是 Webservice.asmx 文件,只是想确保它是正确的。
-
好的,我会发布整个文件
标签: asp.net ajax autocomplete