为什么不使用Ajax AutoCompleteExtender?

时间:2011-07-16 12:32:37

标签: c# asp.net ajax

据我从互联网上研究,我写了一个AutoCompleteExtender来从WebService中提取数据。我找不到有什么问题。 我必须使用.Net 4.0和StoredProcedure。我想在单个表中搜索以'al'开头的单词,但我找不到那些,当然,没有区分大小写。

HTML代码;

<asp:AutoCompleteExtender ID="txtArama_AutoCompleteExtender" runat="server" DelimiterCharacters=""
                        Enabled="True" ServiceMethod="EtiketAutoComplete" ServicePath="~/AutoComplete.asmx"
                        TargetControlID="txtArama" MinimumPrefixLength="2">
                    </asp:AutoCompleteExtender>

WebService代码;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]

public class AutoComplete : WebService
{
[WebMethod]
public string[] GetEtiket(string prefixText)
{
    try
    {
        DataSet ds;
        ArrayList PN = new ArrayList();
        DBProvider DBProvider_ = new DBProvider();
        DBProvider_.AddParameters("@Etiket", SqlDbType.NVarChar, prefixText);
        ds = DBProvider_.ExecuteDataSet("EtiketAutoComplete", CommandType.StoredProcedure);
        if (ds != null)
        {
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                PN.Add(dr["Etiket"]);
            }
        }
        return (string[])(PN.ToArray(typeof(string)));
    }
    catch (Exception)
    {
        return null;
    }

   }
}

2 个答案:

答案 0 :(得分:0)

我认为您的服务方法应该:“GetEtiket”而不是“EtiketAutoComplete”。请检查。

答案 1 :(得分:0)

您的网络服务方法名称是GetEtiket,但为什么要放置此ServiceMethod="EtiketAutoComplete"