0

皆さんこんにちは私はjqueryが初めてで、jqueryの学習段階にあります。jquery を使用してオートコンプリート テキストボックス機能を作成しようとしています。ここでエラーが発生しています。jqueryコードのエラーセクションへの私のコードです..

これが私のJqueryコードです

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        SearchText();
    });
    function SearchText() {
        $(".autosuggest").autocomplete({
            source: function (request, response) {
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "Home.aspx/GetData",
                    data: "{'Prefix':'" + document.getElementById('txtSearch').value + "'}",
                    dataType: "json",
                    success: function (data) {
                        response(data.d);
                    },
                    error: function (result) {
                        alert("Error");
                    }
                });
            }
        });
    }
</script>
</head>
<body>
    <form id="form1" runat="server">
        <div class="demo">
            <div class="ui-widget">
                <label for="tbAuto">Enter UserName: </label>
                <input type="text" id="txtSearch" class="autosuggest" />
            </div>

ここに私のC#コードがあります

[System.Web.Script.Services.ScriptMethod()]
    [System.Web.Services.WebMethod]
    public static List<string> GetData(string Prefix)
    {

        List<string> result = new List<string>();
        using (SqlConnection con = new SqlConnection("myconnectionstring"))
        {
            using (SqlCommand cmd = new SqlCommand("select hotelname from Hm_HotelMaster where hotelname=@hotelname+'%'", con))
            {
                con.Open();
                cmd.Parameters.AddWithValue("@hotelname", Prefix);
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    result.Add(dr["hotelname"].ToString());
                }
                return result;
            }
        }

動作しない理由と、正確なエラーを取得する方法を教えてください

4

1 に答える 1

0

これを試してみてください。これは役に立ちます。2つのセクションがあります

  1. オートコンプリート要素にデータをバインドする
  2. コードからデータを取得する (つまりBindSearch)

これは、コードに簡単に実装できる方が簡単だと思います

Process:-コード ビハインドからデータを取得し、BindSearch メソッド データをコンテンツ変数に保存し、配列を作成しやすくするために「$」にこぼれた後、すべてのコンテンツ変数データを項目配列にコピーし、その項目配列応答をオートコンプリート プラグインにコピーして、 UL-LIのフォルムでデザインしやすい。

$("#txtSearch").autocomplete({
        minLength: 2,
        source: function (req, resp) {
            BindSearch('Home.aspx', 'GetData', "{Prefix:'" + $('#txtSearch').val() + "'}", function (response) {
                content = response.split('$');
                var item = new Array();
                var i;
                for (i = 0; i < (content.length - 1); i++) {
                    item[i] = content[i];
                }
                resp(item);
            });
        }
    });



function BindSearch(U, F,D, callback) {
    $.ajax({
        type: "POST",
        url: U + '/' + F,
        data: D,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: true,
        cache: false,
        success: function (response) {
            callback(response.d);
        }
    });
}
于 2013-09-14T07:05:06.220 に答える