Диалог JQuery UI не работает при объявлении в index.cshtml, но работает в частичном представлении

0

Я использую диалог JQuery UI для CRUD в своем приложении. Диалог объявлен как:

$(document).ready(function () {
        $.ajaxSetup({ cache: false });

        $(".openDialog").on("click", function (e) {
            e.preventDefault();


            $("#dialog-edit").dialog({
                title: 'Add Student',
                autoOpen: false,
                resizable: false,
                height: 'auto',
                width: 650,
                show: { effect: 'drop', direction: "up" },
                modal: true,
                draggable: true,

                open: function (event, ui) {
                    $(this).load("/Projekti/UnosuProjekat")
                },
                close: function (event, ui) {
                    $(this).dialog('close');
                },

                buttons: {
                    "Delete all items": function () {
                        $(this).dialog("close");
                    },
                    Cancel: function () {
                        $(this).dialog("close");
                    }
                }
            });
            $("#dialog-edit").dialog('open');
            return false;
        });
    });

Когда я помещаю этот код в index.cshtml, который отображает частичный вид, где мне нужен диалог, он не работает. Когда я помещаю его в частичный вид, где объявлена кнопка, которая запускает диалог, все работает нормально.

Что не так с этим?

  • 1
    Как вы отображаете свой частичный вид? Вы можете попробовать проверить, является ли # dialog-edit нулевым или неопределенным, перед запуском диалога.
  • 0
    @ Html.Partial ("_partal", Model, null). Когда я открываю представление исходного кода в FF, сценарий показывается там в обоих случаях, просто не работает, когда физически не находится внутри _partial ...
Показать ещё 5 комментариев
Теги:
razor
asp.net-mvc
asp.net-mvc-4

1 ответ

1
Лучший ответ

В вашем теге index-script:

function Initiate_Dialog(){
        $("#dialog-edit").dialog({
            title: 'Add Student',
            autoOpen: false,
            resizable: false,
            height: 'auto',
            width: 650,
            show: { effect: 'drop', direction: "up" },
            modal: true,
            draggable: true,

            open: function (event, ui) {
                $(this).load("/Projekti/UnosuProjekat")
            },
            close: function (event, ui) {
                $(this).dialog('close');
            },

            buttons: {
                "Delete all items": function () {
                    $(this).dialog("close");
                },
                Cancel: function () {
                    $(this).dialog("close");
                }
            }
        });
        $("#dialog-edit").dialog('open');
        return false;
}

В вашей ajax.actionlink

Добавьте ajaxoptions, который позволяет запускать javascript OnSuccess. Затем он должен вызвать функцию Initiate_Dialog.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню