首页 > 解决方案 > 透视网格预过滤器设置

问题描述

我想用代码更改 devexpress pivotgrid 预过滤器。我正在使用 linqtosql 方法在 c# MVC 中绑定数据。

PivotGridPartialview.cshtml

settings.Fields.Add(field =>
    {
        field.Area = PivotArea.RowArea;
        field.FieldName = "DefTarih";
        field.Caption = "Tarih";
        field.SortOrder = PivotSortOrder.Descending;
        field.ValueFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
        field.ValueFormat.FormatString = "dd/MM/yyyy";
        field.AreaIndex = 0;        
    });
var Tarih1 = System.DateTime.Parse("01." + System.DateTime.Today.Month.ToString() + "." + System.DateTime.Today.Year.ToString());
var Tarih2 = System.DateTime.Parse(System.DateTime.DaysInMonth(System.DateTime.Today.Year, System.DateTime.Today.Month).ToString() +
        "." + System.DateTime.Today.Month.ToString() + "." + System.DateTime.Today.Year.ToString());
settings.Prefilter.CriteriaString = "[DefTarih] between ('" + Tarih1 + "','" + Tarih2 + "')";

控制器

public ActionResult PivotGridPartial()
{
    var model = db.USDRapors;
    return PartialView("_PivotGridPartial", model);
}

当 pivotgrid 加载此代码时,我正确地看到了 pivotgrid 的预过滤器底部。但数据不受预过滤器的影响。在预过滤器中更改开始日期时,预过滤器工作,否则不起作用。哪种方法可以用于更改代码中的预过滤器并在打开页面时工作?

标签: c#model-view-controllerdevexpress

解决方案


如果数据是数字,试试这个:

settings.Prefilter.CriteriaString = "DefTarih => " + Tarih1 + " And [DefTarih] =< " + Tarih2

您正在使用比较运算符的“between”和“=<”,它们无法比较或查找两个字符串值之间的值。


推荐阅读