$(document).ready(function () { var otable = $(‘#tbl-resources‘).dataTable( { bJQueryUI: false, bFilter: true, bPaginate: true, bSort: false, bInfo: true, "oLanguage": { "sSearch": "Click on column to sort / Search all columns for:" } , "sPaginationType": "simple_numbers", "bAutoWidth": false, "sDom": ‘<"row view-filter" <"col-sm-6"<"#ddl-category">><"col-sm-6"<"pull-right"f>>>t<"row view-pager"<"col-sm-7"<"pull-left"l><"pull-right"i>><"col-sm-5"<"pull-right"p>>>‘, "aoColumns": [ null, null, null, { "width": "40%" } ], "buttons": [ { extend: ‘collection‘, text: ‘Select Resource Category‘, "fnClick": function (nButton, oConfig, oFlash) { alert(‘Mouse click‘); } } ] }); $label = $(‘<label/>‘).text(‘Resource Category:‘).appendTo(‘#ddl-category‘) $label.append(" "); //insert the select and some options $select = $(‘<select/>‘, { ‘class‘: ‘form-control‘ }).appendTo(‘#ddl-category‘) @foreach (var item in Model.ResourceCategories) { <Text> $(‘<option/>‘).val(‘@item.Value‘).text(‘@item.Text‘).appendTo($select); </Text> } otable.$(".editResource").on(‘click‘, function () { var category = $(‘#ddl-category :selected‘).val(); alert(category); var overridden = $(this).data(‘overridden‘); var resourceId = $(this).attr(‘data-resourceId‘); $.ajax({ url: ‘@Url.Action("EditResource", "Correspondent")‘, type: "POST", data: { selectedId: resourceId, selectedCategory: category, IsOverriddenResource: overridden }, }).success(function (result) { $(‘#div-edit-modal‘).html(result); $(‘#edit-modal‘).modal(‘show‘); }); }); });
My last column in Datatable is link, but only work on the first page, whenever I changed the page number or number shown on page the links were not working.
Solution: Delegated events have the advantage that they can process events from
descendant elements that are added to the document at a later time. By
picking an element that is guaranteed to be present at the time the
delegated event handler is attached, you can use delegated events to
avoid the need to frequently attach and remove event handlers.
So, instead of using
$(".editResource").click(function () {
need to use dataTables.$() which is
otable.$(‘.editResource‘).on(‘click‘, function () {
时间: 2024-12-29 11:40:09