Не удается предотвратить закрытие ModalDialog в веб-части SharePoint - PullRequest
0 голосов
/ 17 февраля 2012

Я вызываю SP.UI.ModalDialog.showModalDialog () в функции javascript моей веб-части (SharePoint 2010), но диалоговое окно отображается на одну секунду, а затем закрывается.
Первоначально я хотел вызвать страницу sharepoint (в папке Layouts), но я тестирую с помощью простого диалога, чтобы убедиться, что это не ошибка на моей странице sharepoint.

В веб-части у меня есть таблица, в которой каждая первая строка ячейки является LinkButton. Я установил OnClientClick для вызова функции JavaScript:

linkButton.OnClientClick = string.Format("OpenNotationCurveDialog('{0}');",
                    notation.code);

В блоке скриптов веб-части ASCX у меня есть:

function OpenNotationCurveDialog(notationCode) {

    var htmlElement = document.createElement('p');

    var helloWorldNode = document.createTextNode('Hello world!');
    htmlElement.appendChild(helloWorldNode);

    var options = {

        title: "Add item",
        allowMaximize: true,
        showClose: true,
        width: 800,
        height: 600,
        html: htmlElement,
        dialogReturnValueCallback: CurveDialog_ClosedCallback

    };

    SP.UI.ModalDialog.showModalDialog(options);

    return false;
}

function CurveDialog_ClosedCallback(result, value) {
    console.log('!! CurveDialog_ClosedCallback !!');
}

Функция CurveDialog_ClosedCallback никогда не вызывается. В той же веб-части я добавил элемент в меню веб-частей, который вызывает функцию javascript SP.UI.ModalDialog.showModalDialog (): он работает отлично. Я не понимаю, почему он работает при вызове showModalDialog () из меню и не работает из события клиента LinkButton.

Есть идеи, как решить это очень раздражающее поведение? ТНХ

1 Ответ

1 голос
/ 17 февраля 2012

Вероятно, что кнопка ссылки выполняет обратную передачу, поэтому страница перезагружается, в результате чего диалоговое окно исчезает. Попробуйте вместо этого использовать простой тег привязки.

...