0

私のサイトは mvc-4 にあり、ダイアログで部分ビューを開いています。部分ビューは最初は正常に機能しますが、2 回目に開くとダイアログが開きますが、部分ビューは機能しません。私が間違っているjqueryの問題があると思います。部分ビューでは、div ホバー イベントが機能しません。

これは、ダイアログを開くための私のコードです:

<div onclick="ShowHistory();">Actions History</div>
function ShowHistory()
{
    myDialog = $("<div> </div>");
    myDialog.dialog({
        autoOpen: false,
        width: 1050,
        title: "Title",
        resizable: false,
        modal: true,
        draggable: false,
    });

    myDialog.load("@Url.Action("Method_return_partial_view", new {id = 1 })",
function () {
        myDialog.dialog('open');
    });

}

コントローラーの方法:

[Authorize]
    public PartialViewResult Method_return_partial_view(int id)
    {
        var list = GetHistory(id);
        return PartialView("_partialViewName", list);
    }

編集:

私もグリッドを並べ替えています。グリッドの並べ替えはjquery ajaxを使用して行われます。最初に開いたときに正常に動作し、並べ替えのためのコントローラーメソッドが1回呼び出されますが、ダイアログを2回目に開き、ヘッダーの並べ替えをクリックすると、複数のコントローラーメソッドが呼び出されますof two は、1 回クリックすると 1 回呼び出され、2 回目のクリックでコントローラー メソッドが 2 回呼び出され、3 回目のクリックで 4 回呼び出されることを意味します。

4

1 に答える 1

1

ダイアログを再利用できるように、ダイアログが閉じたときに何が起こるかを指定してみてください。これを試して:

function ShowHistory()
{
    myDialog = $("<div> </div>");
    myDialog.dialog({
        close: function (event, ui) {
            // remove div with all data and events            
            myDialog.remove();
                },
        autoOpen: false,
        width: 1050,
        title: "Title",
        resizable: false,
        modal: true,
        draggable: false,
    });

    myDialog.load("@Url.Action("Method_return_partial_view", new {id = 1 })",
function () {
        myDialog.dialog('open');
    });    
}
于 2013-05-31T07:06:53.710 に答える