Javascript 使用JQuery for ASP.NET自动完成
ff示例来自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”, “红宝石”, “斯卡拉”, “方案” ]; $(“#标记
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"
};
}