首页 > 解决方案 > 如何显示引导对话框,然后调用 $.get 更新对话框代码

问题描述

我有一个引导对话框,其中有一个需要在事务发生后更新的列表。我已将对话框代码放在 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使用部分视图更新对话框代码?

标签: javascriptjqueryasp.net-mvcasp.net-mvc-partialview

解决方案


如何在对话框关闭后执行 $.get 以使用部分视图更新对话框代码?

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

将函数绑定到 Twitter Bootstrap 模式关闭

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

推荐阅读