哎, 我在asp.net ajax更新面板中使用Facebook风格的autoComplete, 问题是当我对UpdatePanel Jquery Disapear进行回发时, 任何Idead?
感谢,
代码:
$(document).ready(function () {
$("[id$='DDL_Guests']").fcbkcomplete({
json_url: "../../Search.asmx/SearchAC",
cache: false,
filter_case: false,
filter_hide: true,
firstselected: true,
onremove: RemoveItem,
onselect: AddItem,
filter_selected: true,
maxitems: 10,
newel: true
});
});
答案 0 :(得分:2)
当发生部分回发时,它会更新您的标记,因此ID为DDL_Guests
的元素将不再绑定到您第一次加载页面时使用的jQuery代码。
因此,您需要在发生部分回发事件后重新绑定jQuery代码。
要解决此问题,您必须在代码中添加endRequest
事件处理程序并调用一个函数,该函数将窗口小部件再次重新绑定到DDL_Guests
元素,如下面的代码所示
$(document).ready(function () {
jQueryInit();
});
function load() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(jQueryInit);
}
function jQueryInit() {
$("[id$='DDL_Guests']").fcbkcomplete({
json_url: "../../Search.asmx/SearchAC",
cache: false,
filter_case: false,
filter_hide: true,
firstselected: true,
onremove: RemoveItem,
onselect: AddItem,
filter_selected: true,
maxitems: 10,
newel: true
});
}
然后只需从身体标记中调用load
函数
<body onload="load()">
使用此技巧,jQueryInit()
函数内的jQuery代码在第一次页面加载$(document).ready(function () {}
时绑定,并在UpdatePanel引起的部分页面回发后再次重新绑定
希望有所帮助