更改后的复选框无法在通过AJAX呈现的部分视图中工作

时间:2013-07-23 17:18:51

标签: c# asp.net-mvc jquery asp.net-mvc-partialview

我有一个使用C#MVC3和部分视图开发的页面。 分页是使用部分视图 AJAX 实现的。生成的页面将有一个每个记录的复选框。这个想法是让用户选中他们想要打印的每个记录旁边的框。当他们单击页面上的“打印”按钮时,将仅打印那些选定的记录。为了实现这一点,我将所选记录移动到布局页面中的<div>,然后单击打印按钮,我将这些复制的记录用于打印。

I have one    layaout page : _layout.cshtml    
                     View  :  DetailedReport.cshtml
            Partical View  :  `PVdetailedReport.cshtml`

DetailedReport.cshtmlPVdetailedReport.cshtml非常相似。

我第一次使用DetailedReport.cshtml(即第1页)。对于其余页面,因为它们是通过ajax调用呈现的,所以我使用的是PVdetailedReport.cshtml

当我勾选复选框时,将所选元素移动到<div>,适用于第一页但适用于后续页面,这些页面通过 AJAX 和局部视图呈现,所选元素的移动无效。

以下是将所选元素移动到<div>

的代码
  $(":checkbox").on('change', function () {
       if ($(this).hasClass('containerToCopy')) {

            if ($(this).is(':checked')) {
                // If a listing is selected then move it to  divToPrintContainer, which is buried inside _Layout.cshtml
                $(this).closest('table').clone().appendTo("#divToPrintContainer");
               } else {
                // If a listing is UNselected then remove it from  divToPrintContainer
                $('#divToPrintContainer').find("[id='" + "tbl-" + $(this).attr('id') + "']").remove();
            }
    }
});

1 个答案:

答案 0 :(得分:2)

尝试委派事件监听器

$(document).on('change', ":checkbox", function () { ... });

更多访问:http://api.jquery.com/on/