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