如何显示引导对话框,然后调用$ .get来更新对话框代码

问题描述 投票:1回答:1

我有一个Bootstrap对话框,其中包含一个列表,该列表需要在交易发生后进行更新。我已将对话框代码放在MVC局部视图中。我还定义了一个区域,部分视图将呈现为父视图,如下所示:

<div id="idCodeRefreshAreaForFindModal">
    @{Html.RenderPartial("_FindPurchaseOrderModal", Model); }
</div>

模态对话框使用以下代码很好显示:

单击以显示对话框的按钮:

<input type="button" name="PurchaseOrderButton" value="Test with JavaScript function"
       class="btn btn-primary" id="idFindBtnTest2" />

单击以上按钮时触发的jQuery事件处理程序:

$("#idFindBtnTest2").click(function () {
    $('#id-FindModal').modal('show');
  });  
});

但是,我需要关闭对话框并进行交易后刷新对话框代码。这是我遇到的问题。如果我更新了上面的代码,那么将发生$.get事务以返回对话框的更新的局部视图,以后再单击该按钮将不会显示该对话框:

$("#idFindBtnTest2").click(function () {
    $('#id-FindModal').modal('show');

   var params = {};
   url = '@Url.Action("_FindPurchaseOrderModal", "PurchaseOrder")';
   $.get(url, $.param(params, false), function (data) {
       $('#idCodeRefreshAreaForFindModal').html(data); 
  });  
});

我认为对话框代码在显示之前就已经更新,因此这破坏了对话框。如果我删除试图显示对话框的行并再次运行此测试,则$.get操作将成功更新模态的局部视图。如果我删除$.get部分并仅离开显示对话框部分,则该对话框会很好显示。

我尝试在语句后放置sleep(2000)语句以显示对话框,但这不起作用。对话框关闭后,如何执行$.get用局部视图更新对话框代码?

javascript jquery asp.net-mvc asp.net-mvc-partialview
1个回答
1
投票

关闭对话框后,如何执行$ .get来更新带有局部视图的对话框代码?

这可能是一个更好的解决方案,而不是将事件绑定到显示模式的按钮,您可以在关闭模式时绑定事件

Bind a function to Twitter Bootstrap Modal Close

$("#idFindBtnTest2").click(function () {
    $('#id-FindModal').modal('show');
});

$(document).on('hidden.bs.modal', '#id-FindModal', function (event) {
   var params = {};
   url = '@Url.Action("_FindPurchaseOrderModal", "PurchaseOrder")';
   $.get(url, $.param(params, false), function (data) {
       $('#idCodeRefreshAreaForFindModal').html(data); 
   }); 
});
© www.soinside.com 2019 - 2024. All rights reserved.