Могу ли я передать значения в эту Jquery var для autocomplete () из БД. - PullRequest
0 голосов
/ 24 августа 2011
$(function () {
    var availableTags = [
            "ActionScript", "AppleScript","Asp","BASIC",
                     "C","C++","Clojure","COBOL","ColdFusion","Erlang",
                     "Fortran","Groovy","Haskell","Java","JavaScript","Lisp",
                     "Perl","PHP","Python","Ruby","Scala","Scheme"];
    $("#mdatepicker").autocomplete({
        source: availableTags
    });
});

приведенный выше фрагмент взят из jquery.orq - могу ли я создать один массив (из доступных продуктов, которые следует извлечь из БД - MS SQL Server в ASP.NET) ..?

Ответы [ 4 ]

0 голосов
/ 25 августа 2011

Лучший способ - использовать для этого вызов AJAX.

В вашем приложении ASP.NET у вас должен быть .ASMX веб-службы WCF, который может возвращать массив сущностей для автозаполнения.

Просто пример кода, который может вам помочь.

На стороне сервера (WCF):

public IList<Product> GetProductsStartWith(string productName) {
   // ask db here and return results
   return productList;
}

На стороне клиента вам необходимо запросить данные у веб-службы,

var startWith = $('#input').val();
$.getJson('/WebService/GetProductsStartWith', startWith, function(response) {

  $("#mdatepicker").autocomplete({
        source: response.d
    });
});
0 голосов
/ 24 августа 2011

Существует множество способов сделать это, я думаю, что проще всего добавить скрытое поле, в котором вы создадите серверную часть, которая будет содержать значения, полученные из вашей базы данных.

//connect to your database and retreive your data and insert it into hf.value.
hF.Value = "the values retreived must be separated by a ',' "
hF.ID = "hF";
// add your control to the webpage.

и jqueryбыть

$(function () {
    var availableTags = $("#hF").val().split(',');
    $("#mdatepicker").autocomplete({
        source: availableTags
    });
});

Надеюсь, это поможет.

0 голосов
/ 25 августа 2011
 List<string> myAutoList = new List<string>() ;

            myAutoList.Add("Grand Trust");
            myAutoList.Add("iSmart");
            myAutoList.Add("F5 Tech");
            StringBuilder  script = new StringBuilder();
            script.Append("var availableTags = [ ");
            foreach (string str in myAutoList )
            {
                script.Append("'");
                script.Append(str.ToString());
                script.Append("', ");
            }
            script.Remove(script.Length - 2, 2);
            script.Append(" ];");

            ClientScript.RegisterClientScriptBlock(GetType(), "MyScript", script.ToString(), true);

А в Javascript нужно то же самое:

    $(function () {
//            if (availableTags == null)
//            {
//                var availableTags = [
//                'ActionScript',   "AppleScript",  "Asp",  "BASIC","C","C++","Clojure","COBOL","ColdFusion","Erlang","Fortran","Groovy","Haskell","Java",
//                "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme"];
//            }

        $("#mdatepicker").autocomplete({
            source: availableTags
        });
    });
0 голосов
/ 24 августа 2011

Вы должны написать метод, который возвращает JSON, а затем вызвать этот метод в вашем скрипте jquery и построить массив js с результатом.

...