【问题标题】:Ajax AutoCompleteExtender (Without WebService) Not WorkingAjax AutoCompleteExtender(没有 WebService)不工作
【发布时间】:2013-12-11 12:39:55
【问题描述】:

我正在尝试使用 Ajax AutoCompleteExtender,但它不起作用。我哪里错了。更新面板等其他 Ajax 控件工作正常。使用 Chrome。

ASPX:

<asp:TextBox ID = "txtSearch" runat="server">
 <ajax:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" 
TargetControlID="txtSearch" MinimumPrefixLength="2" EnableCaching="true" 
CompletionSetCount="10" CompletionInterval="1000" ServiceMethod="GetCountries">
</ajax:AutoCompleteExtender>

ASPX.CS

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]

public static IEnumerable<string> GetCountries()
 {
   return objDAL.GetCountries(txtSearch.Text.Trim());
 }

DAL:

public IEnumerable<string> GetCountries(string text)
 {
   return MyDB.tblCountries.Where(e=>e.CountryName.StartsWith(text)).
          Select(e=>e.CountryName);
 }

也试过了

public static List<string> GetCountries()
 {
   return objDAL.GetCountries(txtSearch.Text.Trim()).ToList();
 }

【问题讨论】:

    标签: c# asp.net linq entity-framework-4


    【解决方案1】:

    使用此代码:

    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title>Ajax AutoCompleteExtender without Webservice</title>
    </head>
    <body>
    <form id="form1" runat="server">
    <ajax:ToolkitScriptManager ID="ScriptManager1" runat="server"/>
    <div>
    <asp:TextBox ID="txtCountry" runat="server"></asp:TextBox>
    <ajax:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtCountry"
    MinimumPrefixLength="1" EnableCaching="true" CompletionSetCount="1" CompletionInterval="1000" ServiceMethod="GetCountries" >
    </ajax:AutoCompleteExtender>
    </div>
    </form>
    </body>
    </html>
    

    代码背后:

    using System.Data;
    using System.Data.SqlClient;
    using System.Collections.Generic;
    using System.Configuration;
    
    [System.Web.Script.Services.ScriptMethod()]
        [System.Web.Services.WebMethod]
        public static List<string> GetCountries(string prefixText)
        {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString());
        con.Open();
        SqlCommand cmd = new SqlCommand("select * from Country where CountryName like @Name+'%'", con);
        cmd.Parameters.AddWithValue("@Name", prefixText);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        List<string> CountryNames = new List<string>();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
        CountryNames.Add(dt.Rows[i][1].ToString());
        }
        return CountryNames;
        }
    

    【讨论】:

    • 谢谢。但我必须使用 linq 和层架构
    猜你喜欢
    • 2010-10-18
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多