我可以从DB中为自动完成()传递值到此Jquery var吗?

时间:2011-08-24 12:38:07

标签: jquery asp.net sql-server-2005 autocomplete jquery-autocomplete

$(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 - 我可以创建一个阵列(应该从DB中检索的可用产品 - ASP.NET中的MS SQL Server)。?

4 个答案:

答案 0 :(得分:0)

您必须编写一个返回JSON的方法,然后在您的jquery脚本上调用此方法,并使用结果构建js数组。

答案 1 :(得分:0)

有许多方法可以实现这一点,我认为最简单的方法是添加一个隐藏字段,您创建服务器端将包含从数据库中检索到的值。

//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
    });
});

希望这有帮助。

答案 2 :(得分:0)

 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
        });
    });

答案 3 :(得分:0)

最好的方法是使用AJAX调用。

在ASP.NET应用程序中,您应该拥有WCF Web服务的.ASMX,它可以返回实体数组以进行自动完成。

只是一个示例代码,可能会指导您。

服务器端(WCF):

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

在客户端,您必须查询您的Web服务以获取数据

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

  $("#mdatepicker").autocomplete({
        source: response.d
    });
});