0

Je crois que cela est arrivé depuis la dernière mise à niveau de mon paquet NuGet de 1.3.42 à 1.3.44.Les filtres de colonne Mvc.JQuery.DataTables ont cessé de fonctionner

Report.cshtml:

@using Company.Controllers 
@using Mvc.JQuery.DataTables 
@using Mvc.JQuery.DataTables.Serialization 

@{ 
    ViewBag.Title = "Report"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

@section Styles { 
    @Styles.Render("~/CSS/mvcdatatables") 
} 

@section Scripts { 
    @Scripts.Render("~/bundles/mvcdatatables") 
} 

<div> 
    <h1>Report for @ViewBag.ProjectName</h1> 
</div> 

@{ 
    var vm = Html.DataTableVm("table-id", (ProjectsController p) => p.GetReportData(null)); 

    vm.Dom = "Blfrtip"; 
    vm.LengthMenu = LengthMenuVm.Default(); 
    vm.PageLength = 25; 
    vm.ColVis = false; 
    vm.UseColumnFilterPlugin = true; 
    vm.TableTools = true; 
} 

@Html.Partial("DataTable", vm) 

Quand j'entre un terme de recherche dans les filtres de colonne, aucun filtrage se produit plus. Ce que je vois dans mon GetReportData est que DataTablesParam n'a aucun sSearchValues rempli plus.

public DataTablesResult<VariableModel> GetReportDataCore(DataTablesParam dataTableParam, /* ... params omitted */) 
{ 
    ... 
    reportItems = ... // Details doesn't matter how I obtain these, it works, the view lists the name value pairs 
    var queryable = reportItems.InterceptWith(new SetComparerExpressionVisitor(StringComparison.CurrentCultureIgnoreCase)); 
    return DataTablesResult.Create(queryable, dataTableParam, (ResponseOptions<VariableModel>)null); 
} 

Après la mise à niveau 1.3.44 j'ai essayé:

@{ 
    var vm = Html.DataTableVm("table-id", (ProjectsController p) => p.GetReportData(null)); 

    vm.Dom = "Blfrtip"; 
    vm.LengthMenu = LengthMenuVm.Default(); 
    vm.PageLength = 25; 
    vm.ColVis = false; 
    vm.Filter = true; 
    vm.ShowFilterInput = true; 
    vm.UseColumnFilterPlugin = true; 
    vm.TableTools = true; 
    vm.FilterOn("VariableName").Text().FilterOn("Value").Text(); // Even this 
} 

Que dois-je faire pour le faire fonctionner à nouveau?

Répondre