Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQuery for ASP.NET自动完成_Javascript_Jquery_Asp.net - Fatal编程技术网

Javascript 使用JQuery for ASP.NET自动完成

Javascript 使用JQuery for ASP.NET自动完成,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,ff示例来自 jQuery UI自动完成-默认功能 $(函数(){ var availableTags=[ “动作脚本”, “AppleScript”, “Asp”, “基本”, “C”, “C++”, “Clojure”, “COBOL”, “ColdFusion”, “二郎”, “Fortran”, “好极了”, “哈斯克尔”, “爪哇”, “JavaScript”, “口齿不清”, “Perl”, “PHP”, “Python”, “红宝石”, “斯卡拉”, “方案” ]; $(“#标记

ff示例来自


jQuery UI自动完成-默认功能
$(函数(){
var availableTags=[
“动作脚本”,
“AppleScript”,
“Asp”,
“基本”,
“C”,
“C++”,
“Clojure”,
“COBOL”,
“ColdFusion”,
“二郎”,
“Fortran”,
“好极了”,
“哈斯克尔”,
“爪哇”,
“JavaScript”,
“口齿不清”,
“Perl”,
“PHP”,
“Python”,
“红宝石”,
“斯卡拉”,
“方案”
];
$(“#标记”).autocomplete({
资料来源:availableTags
});
});
标签:
从这个例子中,我想在我的ASP.NET项目中应用它

我关心的是,是否有可能将“availableTags”的内容放在来自代码隐藏的变量中?如果是,那么如何将其连接到此代码以完成相同的任务

谢谢你的帮助


谢谢大家!

ASPX页面的脚本部分:

<script>
$(function() {
  var availableTags = [
    <%= GetAvailableTags() %>
  ];
  $( "#tags" ).autocomplete({
    source: availableTags
  });
});
</script>
GetAvailableTags()
函数的输出将在渲染时直接写入页面


当然,这是一个“快速而肮脏”的解决方案。例如,如果自动完成项包含引号等特殊字符,则必须采用不同的方法。

您可以使用ASP.NET AJAX页面方法作为通过jQuery调用的服务器端的管道来检索可用标签列表,如下所示:

<script>
    $(document).ready(function() {
        $("#tags").autocomplete({
            source: function(request, response) {
                $.ajax({
                    type: "POST",
                    url: "YourPage.aspx/GetAutoComplete",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {

                    }
                });
            }
        });
    });
</script>
[WebMethod]
public static string[] GetAutoComplete()
{
    return new[]
    {
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"
    };
}

我认为,假设您使用的是aspx页面,则必须使用脚本管理器或其他机制将jquery数据源的值插入asp.net页面加载上的dom中。如果您使用的是mvc,那么它就很简单了。既然您使用的是asp.net,为什么不使用内置的autocomplete呢?我曾经尝试过它,但它对我不起作用,因为我们用来访问数据库的预定义类很复杂。嗯,您只需要构建一个逗号分隔的带引号字符串列表,并使用
var availableTags=[]
直接在数组中输出它。这是基本的ASP.NET.Solomon,如果你能给我提供一个样本,我将不胜感激。谢谢,我会试试这个。别担心,我们在项目中不包含特殊字符。这只是数据库中的一个名字列表。我只是意识到,是的,这确实是一个“快速而肮脏”的解决方案,但对我来说,这有点神秘,因为我以前从未尝试过。:)我从未使用
语法绑定JavaScript数组,很好!把这个归档,以后用!好办法。我不知道你能这么容易地在ASP.NET中创建AJAX端点。我认为你的语法是错误的:重复的标题。啊,是的,复制和粘贴得到了我。LOL。更新答案。我同意这是一种比我之前尝试过的其他方法更简单的方法,它将迫使您添加类似AutoComplete.asmx的内容。谢谢Karl!我也要试试这个。@ChrisN.P.-太好了,很高兴我们能帮助你。祝你好运。:-)
<script>
    $(document).ready(function() {
        $("#tags").autocomplete({
            source: function(request, response) {
                $.ajax({
                    type: "POST",
                    url: "YourPage.aspx/GetAutoComplete",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {

                    }
                });
            }
        });
    });
</script>
[WebMethod]
public static string[] GetAutoComplete()
{
    return new[]
    {
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"
    };
}