0

私はjqueryダイアログを持っています.2つのパーシャルビュー、詳細を保存した後にマスターに戻ったときの単純なマスター/詳細、応答ではなくボタンをクリックします。

私はいくつかのコードを投稿します:

主人

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

1 に答える 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);
                }
            });

違いは、 on 関数をバインドに使用すると、動的に追加された要素に対しても機能することです。問題を解決できます。

于 2013-10-03T10:32:34.950 に答える