18 Ekim 2014 Cumartesi

Ajax AutoComplete Extender ile gelişmiş arama

Ajax AutoComplete Extender ile gelişmiş arama



ASP.NET AJAX AutoComplete extender herhangi bir TextBox kontrolüne bağlanabilir ve bundan sonra  textbox'a yazılan yazı ile başlayan kelimeyle ile ilişkilendirilecek ve pop up panelde bu ilişkili kelimeler gözükecektir.

Dropdown içerisinde web servis tarafından sağlanan aday kelimeler textbox içine yerleştirilecektir.

Belirlenen minimum kelime uzunluğundan fazla içerik yazıldığında, pop up belirlenen değeri baz alarak ona göre kelime veya sözcük takımlarını gösterecektir. Cache özelliği açıldığında  (EnableCaching="true") yazılan içerik birden çok gösterilecektir.

 AutoComplete içerisinde kullanacağımız özellikler





<cc1:AutoCompleteExtender


    ServiceMethod="KategoriAra" // Çağırılacak servis adı


    MinimumPrefixLength="2" // Minimum karakter sayısı. Web servisten istek gelmeden önce belirlenmelidir.


    CompletionInterval="100"// Zamanlayıcının kaç milisaniyede bir web servisten yanıt alacağı giriliyor


    EnableCaching="false" // Yukarıda açıklandı


    CompletionSetCount="10" // Web servisten alınacak istek sayısı


    TargetControlID="txtContactsSearch" // Bağlı olunan textbox


    ID="AutoCompleteExtender1"


    runat="server"


    FirstRowSelected = "false"  // AutoComplete varsayılan olarak ilk satırı seçsinmi


 >


<!--cc1:AutoCompleteExtender>




Servis metod nasıl çağrılır




Aşağıda web servis code-behinde sayfasından nasıl çağrılır görebilirsiniz. Ayrıca birazdan kodlar içerisinde de kullanacağız.



[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static List KategoriAra(string prefixText, int count) {
}

AutoComplete aday kelimeleri veritabanından çekip göstermek

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

[System.Web.Services.WebMethod]

public static List<string> KategoriAra (string prefixText,  int count)

{

    using (SqlConnection conn = new SqlConnection())

    {

        conn.ConnectionString = ConfigurationManager

                .ConnectionStrings["constr"].ConnectionString;

        using (SqlCommand cmd = new SqlCommand())

        {

            cmd.CommandText = "select KategoriAdi from Kategoriler where " +

            "KategoriAdi like @AranacakKelime + '%'";

            cmd.Parameters.AddWithValue("@AranacakKelime ", prefixText);

            cmd.Connection = conn;

            conn.Open();

            List<string> customers = new List<string>();

            using (SqlDataReader sdr = cmd.ExecuteReader())

            {

                while (sdr.Read())

                {

                    customers.Add(sdr["KategoriAdi "].ToString());

                }

            }

            conn.Close();

            return customers;

        }

    }

}

 

Kolay Gelsin

Hiç yorum yok:

Yorum Gönder