2

非常に長い人々の名前のドロップダウン リストがあります。2,000名にも及びます。一度にドロップダウン リストを名前のサブセットに制限することで、ユーザーが興味のある名前を見つけやすくしたいと考えています。ユーザーがクリックした文字で始まる名前のみをドロップダウン リストに入力するコード ビハインドのメソッドを呼び出す一連の 26 個のリンク (A、B、C ... Z) を作成することでこれを行いました。

これはすべてうまくいきますが、AJAX を使用して、ページを更新せずにドロップダウン リストを更新できるようにしたいと考えています。ASP.NET AJAX ではなく、AJAX 機能に jQuery を使用したいと考えています。

私の問題は、ストアド プロシージャを実行し、jQuery AJAX を介してドロップダウン リストを新しいデータセットに「再バインド」する方法がわからないことです。例やウォークスルーを提供する可能性のある提案やリソースはありますか? ありがとうございました。

4

2 に答える 2

6

あなたのためのいくつかの方向。

最初に、投稿を受け取り、json を返すページ、webservice、またはhttphandlerを作成します。

ハンドラ:

public void GetNames(HttpContext context)
{
    context.Response.ContentType = "application/json";
    context.Response.ContentEncoding = Encoding.UTF8;

    var results = DataAccess.GetNames(context.Request["letter"]);

    string json = //encode results to json somehow, json.net for example.

    context.Response.Write(json );
}

マークアップ

<ul>
  <li>A</li>
</ul>

<select id="names">
</select>

$.postを実行するスクリプト

$(function(){
  $("li").click(function(){
    var letter = $(this).text();
    $.post("SomeUrl/GetNames", {letter: letter}, function(data){
     var $sel = $("#names").empty();
     $.each(data, function(){
       //this assumes the json is an array in the format of {value: 1, name:'joe'}
       $sel.append("<option value='" + this.value + "'>" + this.name+ "</option>");
     });
    }, "json");
  });
});

これは、タスクを達成する方法についての適切な概要になるはずです。

いくつかの追加リソース。

于 2011-03-03T16:26:15.680 に答える
0

jQuery Autocompleteプラグインは、有効なソリューションになる可能性があります。

于 2011-03-03T15:26:46.663 に答える