Jquery диалог загрузки частичного просмотра mvc во второй раз

0

У меня есть диалоговое окно jquery, в котором я загружаю два частичных изображения, простой мастер/деталь, когда я возвращаюсь к мастеру после сохранения детали, нажмите кнопку не ответ.

я отправляю код:

МАСТЕР

        $('#dialogActivities').dialog({
        autoOpen: false,
        open: function (event, ui) {
            var id = $(this).data('id');
            var urlList = '@Url.Action("ActivityList", "Contacts")';

            $(this).load(urlList, function ()
            {
                $(".k-grid-ActivityEdit").bind("click", function ()
                {
                    var grid = $("#gridYear").data("kendoGrid");
                    var selectedData = grid.dataItem(grid.select());
                    if (selectedData)
                    {
                        var urlEdit = '@Url.Action("ActivityEdit", "Contacts")';
                        $('#dialogActivities').dialog().load(urlEdit);
                    }
                });
            });
        }
    });

ДЕТАЛЬ

$(document).on('submit', '#frmActivityEdit', function ()
{
    $.ajax({
        cache: false,
        url: this.action,
        type: this.method,
        data: $(this).serialize(),
        success: function (result)
        {
            if (result.success)
            {
                var model = @Html.Raw(Json.Encode(Model));
                var urlList = '@Url.Action("ActivityList", "Contacts")';

                $('#dialogActivities').dialog().load(urlList);
            }
        }
    });
    return false;
});
Теги:
asp.net-mvc
kendo-ui
kendo-grid
jquery-dialog

1 ответ

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

Попробуйте заменить этот фрагмент кода:

$(".k-grid-ActivityEdit").bind("click", function ()
            {
                var grid = $("#gridYear").data("kendoGrid");
                var selectedData = grid.dataItem(grid.select());
                if (selectedData)
                {
                    var urlEdit = '@Url.Action("ActivityEdit", "Contacts")';
                    $('#dialogActivities').dialog().load(urlEdit);
                }
            });

С этим:

$(document).on("click", ".k-grid-ActivityEdit", function ()
            {
                var grid = $("#gridYear").data("kendoGrid");
                var selectedData = grid.dataItem(grid.select());
                if (selectedData)
                {
                    var urlEdit = '@Url.Action("ActivityEdit", "Contacts")';
                    $('#dialogActivities').dialog().load(urlEdit);
                }
            });

Разница в том, что использование функции для привязки также работает для динамически добавленных элементов. Он может решить вашу проблему.

  • 0
    это работает! благодарю вас! ты спас мой день!
  • 0
    Это хорошо :) Всегда пожалуйста
Показать ещё 8 комментариев

Ещё вопросы

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