2

ASP.NET MVC 4jQuery、およびを使用していjQuery UIます。

ビューにダイアログがあります。ボタンをクリックするとダイアログがポップアップし、ダイアログの値を取得してサービスに送信します。サービスは必要な処理を実行し、成功した場合は空白のメッセージを返すか、実際のエラー メッセージを返します。この後、クライアント側でエラーを確認し、現在のダイアログを閉じて、成功ダイアログまたはエラー ダイアログを開く必要があります。現在のダイアログを閉じて別のダイアログを表示する方法がわかりません。

私のボタン:

<button id="TestButton" type="button">Display pop up</button>

私のダイアログ:

<div id="confirmationDialog"></div>
<div id="successDialog"></div>
<div id="errorDialog">error dialog</div>

私のjQueryコード:

$('#TestButton').click(function () {
    $('#confirmationDialog').dialog('open');
});

$('#errorDialog').dialog({
    autoOpen: false,
    modal: true,
    resizable: false,
    width: 500,
    title: 'Add Rule Detail Error',
    buttons: {
        'Ok': function () {
            $(this).dialog('close');
        }
    }
});

$('#confirmationDialog').dialog({
    autoOpen: false,
    modal: true,
    resizable: false,
    width: 330,
    title: 'Add Rule Detail Confirmation',
    open: function (event, ui) {
        $(this).load('@Url.Action("AddRuleConfirmation")' +
            '?systemCode=' + $('#SystemCode').val());
        },
        buttons: {
            'Yes': function () {
                var url = '@Url.Action("AddRuleConfirmationSubmit")';
                var data = {
                    systemCode: $('#SystemCode').val()
                };

                $.getJSON(url, data, function (message) {
                    alert(message);
                    if (message == '') {
                        $(this).dialog('close');
                    }
                    else {
                        $(this).dialog('close');
                        $('#errorDialog').dialog('open');
                    }
                });
            },
            'No': function () {
                $(this).dialog('close');
            }
        }
    });

私の行動方法:

public ActionResult AddRuleConfirmation(string systemCode)
{
    DetailConfirmationViewModel viewModel = new DetailConfirmationViewModel()
    {
        SystemCode = systemCode
    };

    return PartialView("_AddRuleConfirmation", viewModel);
}

public ActionResult AddRuleConfirmationSubmit(string systemCode)
{
    CreateRuleViewModel viewModel = new CreateRuleViewModel()
    {
        SystemCode = systemCode
    };

    ResCodeRuleAdd_Type result = ruleService.AddRule(viewModel);
    string message = string.Empty;

    if (result != ResCodeRuleAdd_Type.R00)
    {
        // Get the error message from resource file
        message = ...
    }

    return Json(message, JsonRequestBehavior.AllowGet);
}

get JSON 呼び出しの後に現在のポップアップを閉じて、別のポップアップを開くにはどうすればよいですか?

4

3 に答える 3

0

getJSON コールバックで、ウィンドウを閉じます

$.getJSON( "test/demo", function( data) {
     if(data==='success'){
         $( ".selector" ).dialog( "close" );
         $( ".selector" ).dialog( "open" );
     }
});

jquery UIダイアログを閉じるには、これを使用します

$( ".selector" ).dialog( "close" );

トップ 新しいダイアログを開く

$( ".selector" ).dialog( "open" );

詳細については、jquery UI http://api.jqueryui.com/dialog/#method-closeの API を確認してください。

于 2013-04-18T16:17:16.277 に答える