数据透视网格预筛选器设置



我想用代码更改 devexpress 透视网格预过滤器。我正在使用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);
}

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

问题出在运算符之间。如果我更改此消息下方的代码,它可以工作。

settings.Prefilter.CriteriaString = "[DefTarih] ='" + Tarih1 + "'"

奇怪的是尝试了其他操作员和所有其他运算符都不工作。同样在此代码下方不起作用。

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

如果数据是数字,请尝试以下操作:

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

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

最新更新