大家好,尊敬的各位。我有一个关于如何在下面的syncfusion数据网格代码中向WHERE子句添加 * AND * 条件的问题:
<SfGrid DataSource="@detailData" Query="@(new Query().Where("book_name","equal",_data.book_name))" AllowPaging="true">
我想实现的是,我可以从代码中获得1个以上的条件。谢谢
u91tlkcl1#
如果要在查询中应用多个条件,可以使用WhereFilter生成 predicate ,然后将生成的 predicate 传递给GridQuery属性,以便在网格中执行筛选操作。请参考下面的代码片段和文档以供参考。
<SfButton Content="Apply Filter" OnClick="Filter"></SfButton><SfButton Content="Clear Filter" OnClick="ClearFilter"></SfButton><SfGrid DataSource="@Orders" Query="@QueryData" AllowPaging="true">
@code {public List<Order> Orders { get; set; }public Query QueryData { get; set; } = new Query();public void Filter(){ var Col1Pre = new WhereFilter(); var predicate = new List<WhereFilter>(); predicate.Add(new WhereFilter() { Field = "Freight", value = 2, Operator = "greaterthanorequal" }); predicate.Add(new WhereFilter() { Field = "Freight", value = 15, Operator = "lessthanorequal" }); Col1Pre = WhereFilter.And(predicate); QueryData = new Query().Where(Col1Pre);}public void ClearFilter(){ QueryData = new Query();}
@code {
public List<Order> Orders { get; set; }
public Query QueryData { get; set; } = new Query();
public void Filter()
{
var Col1Pre = new WhereFilter();
var predicate = new List<WhereFilter>();
predicate.Add(new WhereFilter() { Field = "Freight", value = 2, Operator = "greaterthanorequal" });
predicate.Add(new WhereFilter() { Field = "Freight", value = 15, Operator = "lessthanorequal" });
Col1Pre = WhereFilter.And(predicate);
QueryData = new Query().Where(Col1Pre);
}
public void ClearFilter()
QueryData = new Query();
参考:https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.WhereFilter.html https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.WhereFilter.html#Syncfusion_Blazor_Data_WhereFilter_And_Syncfusion_Blazor_Data_WhereFilter_ https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.WhereFilter.html#Syncfusion_Blazor_Data_WhereFilter_Or_Syncfusion_Blazor_Data_WhereFilter_
lbsnaicq2#
您可以链接Where方法以在一行中应用多个过滤器,这相当于AND。Doc
Where
2条答案
按热度按时间u91tlkcl1#
如果要在查询中应用多个条件,可以使用WhereFilter生成 predicate ,然后将生成的 predicate 传递给GridQuery属性,以便在网格中执行筛选操作。请参考下面的代码片段和文档以供参考。
参考:https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.WhereFilter.html https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.WhereFilter.html#Syncfusion_Blazor_Data_WhereFilter_And_Syncfusion_Blazor_Data_WhereFilter_ https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Data.WhereFilter.html#Syncfusion_Blazor_Data_WhereFilter_Or_Syncfusion_Blazor_Data_WhereFilter_
lbsnaicq2#
您可以链接
Where
方法以在一行中应用多个过滤器,这相当于AND。Doc