0

我想使用关系过滤器来过滤标签。当我传递一个文本字符串并且它可以搜索 EntityTitle 时,这工作正常,但我想将一个 entity_id 传递给过滤器。

我在查询结果的详细信息中注意到关系过滤器具有“CompareAttribute=EntityTitle”。有没有办法编辑它以使其成为EntityID?

谢谢。

4

2 回答 2

0

目前,只能在代码中通过相关项目中的不同属性进行过滤。就是这样

  1. 像你一样创建你的视觉查询,唯一的“错误”是错误的字段
  2. 在您的剃刀模板中,访问查询var q = App.Query["queryname"];
  3. 然后获取数据之前,更改 CompareAttribute。这将需要一些摆弄,因为您必须将qfrom before 转换为 aIDataTarget并向上导航查询树var relFilter = q.In["Default"].Source,然后将其再次转换为正确的类型,然后更改relFilter.CompareAttribute = "Country";

......类似的东西:)

之后,您可以使用foreach(var x in AsDynamic(q["Default"])) {...}

于 2016-09-27T22:03:29.430 回答
0

我已经尝试过这个,我想要一些按地区分组的位置,所以我做了:

  • 区域 1
    • 地址1
    • 地址2
  • 区域 2
    • 地址 3
    • 地址 4

所以基本上它应该做同样的事情,除了它会按地区查询。所以这就是我想出的:

@{
    var someAddresses = App.Query["FilterAddresses"]["ListContent"];
    someAddresses.Filter = region.RegionName;
    Data.In.Add("someAddresses", someAddresses["Default"]);
}
@foreach (var pc in AsDynamic(someAddresses.List)) {
    <li>@pc.Naam</li>
}

然而它说:

CS1061:ToSic.Eav.DataSources.IDataStream不包含过滤器的定义。

那么它应该是别的东西吗?

于 2018-07-02T12:47:36.730 回答