SORU
20 Kasım 2008, PERŞEMBE


jQuery otomatik tamamlama ve ASP.NET

Bu site üzerinden tüm ve bir web adresi olabilirbasitotomatik tamamlama örnek bir WordPress kullanmak ve ASP.NET kullanarak. Veri bir Java eklentisi (ve muhtemelen bundan sonraki yapacak) ile otomatik tamamlama tarafından kullanılan göstermek istedim. Bu arada, bu bir iş var, ama biraz hacky görünüyor

Benim sayfada bir metin kutusu var:

<input id="txtSearch" type="text" />

JQuery otomatik tamamlama, örnek olarak kendi başına kurmak kullanıyorum:

<link rel="stylesheet" href="js/jquery.autocomplete.css" type="text/css" />
<script type="text/javascript" src="js/jquery.bgiframe.js"></script>
<script type="text/javascript" src="js/jquery.dimensions.pack.js"></script>
<script type="text/javascript" src="js/jquery.autocomplete.js"></script>

Hacky almaya başlıyor burada... bir Java eklentisi yerine bir sayfa diyorum:

  <script type="text/javascript">
    $(document).ready(function(){
        $("#txtSearch").autocomplete('autocompletetagdata.aspx');
    });      
  </script>

Sayfa içinde html TÜM soydum ve sadece (aksi takdirde, çeşitli HTML bit otomatik tamamlama açılır göstermek) var bu

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="autocompletetagdata.aspx.cs" Inherits="autocompletetagdata" %>

Ve benim autocompletetagdata.SEO veritabanından sorgu, biçimi ve verileri (her satıra bir veri öğesi) Subsonik kullanıyorum:

protected void Page_Load(object sender, EventArgs e)
{
    // Note the query strings passed by jquery autocomplete:
    //QueryString: {q=a&limit=150×tamp=1227198175320}

    LookupTagCollection tags = Select.AllColumnsFrom<LookupTag>()
        .Top(Request.QueryString["limit"])
        .Where(LookupTag.Columns.TagDescription).Like(Request.QueryString["q"]   "%")
        .OrderAsc(LookupTag.Columns.TagDescription)
        .ExecuteAsCollection<LookupTagCollection>();

    StringBuilder sb = new StringBuilder();

    foreach (LookupTag tag in tags)
    {
        sb.Append(tag.TagDescription).Append("\n");
    }

    Response.Write(sb.ToString());
}

Eğer yapma GİBİ bir sorgu, sonra döner her şeyi içeren bir karşılaşma için karakter(ler) türü -- örneğin, yazarak "bir" vardır "Ask" ve "Cevap" olarak "Mart" ve "Mega" dedi. Ben sadece bu maç ile başlar yapmak istedim.

Her neyse, işe yarıyor ve oldukça ayarlamak kolay değil, ama orada daha iyi bir yolu var mı?

CEVAP
20 Kasım 2008, PERŞEMBE


Ben sadece son zamanlarda otomatik tamamlama uygulanan ve oldukça benzer görünüyor. Bir ashx (Generic Handler) ASP yerine kullanıyorum, ama temelde arkasına kod aynı kod.

Bu ashx kullanarak, şöyle bir şey olacak:

<script type="text/javascript">
  $(document).ready(function(){
      $("#txtSearch").autocomplete('autocompletetagdata.ashx');
  });      
</script>

[WebService(Namespace = "http://www.yoursite.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class AutocompleteTagData : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        // Note the query strings passed by jquery autocomplete:
        //QueryString: {q=a&limit=150×tamp=1227198175320}

        LookupTagCollection tags = Select.AllColumnsFrom<LookupTag>()
            .Top(context.Request.QueryString["limit"])
            .Where(LookupTag.Columns.TagDescription).Like(context.Request.QueryString["q"]   "%")
            .OrderAsc(LookupTag.Columns.TagDescription)
            .ExecuteAsCollection<LookupTagCollection>();

        foreach (LookupTag tag in tags)
        {
            context.Response.Write(tag.TagDescription   Environment.NewLine);
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • TheForgottenGamer1

    TheForgotten

    28 AĞUSTOS 2009
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012