0

Я считаю, что это произошло с момента последнего обновления пакета NuGet от 1.3.42 до 1.3.44.Mvc.JQuery.DataTables фильтры столбцов перестали работать

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) 

Когда я вхожу любое слово для поиска в фильтрах столбцов, фильтрация не происходит больше. То, что я вижу в моей GetReportData, состоит в том, что DataTablesParam не имеет sSearchValues, заполненный в дальнейшем.

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); 
} 

После обновления 1.3.44 я попробовал:

@{ 
    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 
} 

Что я должен сделать, чтобы заставить его работать снова?

ответ

Смежные вопросы