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
が埋め込まれていないということです。
@{
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
}
は、私はそれが再び動作させるために何をすべき:私が試した1.3.44
アップグレード後
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);
}
?