【发布时间】:2012-03-11 00:19:28
【问题描述】:
我在 aspx 页面的 javascript 中使用 jQuery 自动完成代码。当在脚本本身中声明数据时,代码工作正常,但是当我将变量从代码隐藏传递到客户端脚本时,它不会 工作。
<script type="text/javascript">
$(function () {
// var projects = [{value: "jquery", label: "jQuery", desc: "the write less, do more, JavaScript library", icon: "https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v1/yP/r/FdhqUFlRalU.jpg" },
// {
// value: "jquery-ui",
// label: "jQuery UI",
// desc: "the official user interface library for jQuery",
// icon: "https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v1/yP/r/FdhqUFlRalU.jpg"
// },
// {
// value: "sizzlejs",
// label: "Sizzle JS",
// desc: "a pure-JavaScript CSS selector engine",
// icon: "https://fbcdn-profile-a.akamaihd.net/static-ak/rsrc.php/v1/yP/r/FdhqUFlRalU.jpg"
// }
// ];
//
// alert(JSVar + JSVar1);
$("#Text1").autocomplete({
minLength: 0,
source: JSVar,
focus: function (event, ui) {
$("#Text1").val(ui.item.label);
return false;
}
})
.data("autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a><img src='" + item.icon + "' width='32' height='32' /> " + item.label + "</a>")
.appendTo(ul);
};
$("#Text2").autocomplete({
minLength: 0,
source: JSVar1,
focus: function (event, ui) {
$("#Text2").val(ui.item.label);
return false;
}
})
.data("autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a><img src='" + item.icon + "' width='32' height='32' /> " + item.label + "</a>")
.appendTo(ul);
};
});
在代码隐藏中,男性和女性是我的主要数据..
string str1 = "<script type=\"text/javascript\">var JSVar='" + Female + "'; var JSVar1='" + Male + "'; </script>";
ClientScriptManager script = Page.ClientScript;
if (!script.IsClientScriptBlockRegistered(this.GetType(), "Var"))
{
script.RegisterClientScriptBlock(this.GetType(), "Var", str1.ToString());
}
当我使用var projects 而不是JSVar 和JSVar1 时,代码运行良好。但不是当我使用 JSVar 和 JSVar1 时,它们是在代码隐藏中动态定义的,具有与项目相同的结构。
注意:在使用 ClientScriptManager 使用 alert() 验证它们时,我能够在脚本中获得 JSVar 和 JSVar1 的正确值。
【问题讨论】:
-
JSVar和JSVar1长什么样子? -
正如我所说,它与 var Projects 相同。
var JSVar = [{ label: "Id1", value:"Name1", icon: "https://facebook.com/me/picture.jpg"}, { label: "Id2", value: "Name2", icon: "https://.... some url" }]
标签: javascript asp.net jquery-ui autocomplete jquery-ui-autocomplete