0

JQueryダイアログを使用して新しいクライアントを追加しました。成功したら、ページをリロードしたいのですが、発生しません。

JQuery呼び出し

 $("#saveNewClient").click(function () 
        {
            if ($(this).valid())
            {
                var clientName = null;
                var clientTypeId = null;
                var clientCode = null;

                clientName = $('#Client_ClientName').val();
                clientTypeId = $('#ClientTypeSelectId').val();
                clientCode = $('#Client_ClientCode').val();

                $.ajax(
                    {
                        type: "POST",
                        async: false,
                        url: "/Client/AddClient",
                        cache: false,
                        data: { "clientName": clientName, "clientTypeId": clientTypeId, "clientCode": clientCode },
                        dataType: "json",
                        error: function (request) {
                            alert(request.responseText);
                        },
                        success: function (result) {
                            //alert('Successfully Inserted Client');
                            $.ajax({
                                url: "/Client/Index",
                                type: 'GET',
                                datatype: 'json',
                                success: function (data) {
                                    //alert('got here with data');
                                },
                                error: function () {
                                    //alert('something bad happened');
                                }
                            });
                            $('#myClientDialogContainer').dialog('close');
                        }
                    });
            }
            return false;
        });

以前、「クライアントが正常に追加されました」という警告メッセージが表示されました。しかし、追加されたクライアントがグリッドに表示されていないため。別のajax呼び出しを呼び出して、データでページを更新しました。アクションメソッドが呼び出され、ページが読み込まれると、追加されたクライアントデータがグリッドに渡されていることがわかりますが、新しく挿入されたクライアントではグリッドが表示されません。ページを更新すると、行が表示されます。誰でも助けてください。

4

1 に答える 1

2

成功のコールバックで DOM を更新するようにしてください。

success: function (data) {
    //alert('got here with data');
    $('#yourGridContainer').html(data);
}

これは明らかに、Indexコントローラー アクションが、更新された結果を含むグリッドを含む部分ビューを返すことを前提としています。

于 2013-02-19T07:06:35.350 に答える