Jquery Facebook Автозаполнение исчезают после обратной передачи панели обновления - PullRequest
0 голосов
/ 31 октября 2010

эй, я использую автозаполнение в стиле Facebook внутри панели обновления ajax asp.net, проблема в том, что когда я делаю обратную передачу на панель обновления, Jquery исчезает, любая идея?

спасибо,

Код:

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

});

1 Ответ

2 голосов
/ 31 октября 2010

При частичной обратной передаче обновляется разметка, поэтому элемент с идентификатором 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()">

, используя этот трюк, и ваш jQuery-код внутри функции jQueryInit() будет привязанпри первой загрузке страницы через $(document).ready(function () {} и повторной привязке после частичной обратной передачи страницы, вызванной UpdatePanel

Надеюсь, это поможет

...