0

私はプログラミングにまったく慣れていませんが、JavaScript/jQuery に関してはほとんどが初めてです。私がここにいる理由は、オートコンプリートを使用した検索の解決策をインターネットで検索したからです/見つけたもののさまざまなバージョンを適用しようとしましたが、実際に機能する解決策にたどり着けません:)

これが私のコードです:

var mydata
$(document).ready(function () 
{
    ConstructSuggestionArray();
    $("[id$='txtSearchProject']").keypress(function () 
    {
       $("[id$='txtSearchProject']").autocomplete
            ({
                source: mydata
            })
    })
});

function ConstructSuggestionArray()
{
    $.ajax
    ({
        url: 'ProjectManagement.aspx/ConstructSuggestionArray',
        type: "POST",
        data: {},
        async: false,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (response) 
        {
            if (response.d != null) 
            {
                mydata = jQuery.parseJSON(response.d);
                return true;
            }
            else 
            {
                return false; 
            }
        }
    });
}

また、配列を構築するコードの一部:

public string ConstructSuggestionArray()
        {
            using (DataClassesDataContext context = new DataClassesDataContext())
            {
                List<Utils.ProjectsOfAUser> theProjects =  
                      ReturnProjectsAccordingToAllocation(context);
                string[] projectsNameArray = new string[theProjects.Count];
                int index = 0;

            foreach (Utils.ProjectsOfAUser oneProject in theProjects)
            {
                projectsNameArray[index] = oneProject.Name;
                index++;
            }

            string strJSON = string.Empty;
            JavaScriptSerializer objJSSerializer = new JavaScriptSerializer();
            strJSON = objJSSerializer.Serialize(projectsNameArray).ToString();

            return strJSON;
        }
    }
}

また、プロジェクトとasp.netページにスクリプトを追加しました。

私は非常に混乱しており、これを理解するのを手伝ってくれたらとても感謝しています.

言及: txtSearchProject - ASP コントロールです。

前もって感謝します。

4

2 に答える 2

1

have you used jquery autocomplete plugin it's very nice and easy to implement also please go through this link

http://jqueryui.com/demos/autocomplete/

于 2012-08-07T12:05:31.353 に答える
0

jQuery AJAXメソッドは非同期であり、オートコンプリートはnull変数にバインドされているため、オプションはありません。次に、コールバックが実行されて変数が入力されますが、手遅れです。

ここでは2つの選択肢があります。成功のコールバックに次のように入れることができます。

$("[id$='txtSearchProject']").autocomplete( "options", "source", mydata);

ドロップダウンが完了すると、ドロップダウンのソースが設定されます(これには、これを再度呼び出す必要がある場合に更新するという利点があります)。

ソースとしてConstructSuggestionArrayにURLを指定することもできます。ウィジェットはページの呼び出しを処理します(「リモートデータソース」のオートコンプリートデモページを参照して、ソースを表示してください)。

于 2012-08-07T13:47:21.850 に答える