使用说明

  1. [表Service.cs]GetPageData
  2. 将示例中的 当前表 替换为实际实体类型名。

注意:如果使用了异步接口,将SummaryExpress应该放在异步GetPageDataAsync方法中

or 多字段查询

public override PageGridData<当前表> GetPageData(PageDataOptions options)
{
    QueryRelativeList = (List<SearchParameters> list) =>
    {
        foreach (var item in list)
        {
            if (item.Name == "字段")
            {
                item.Fields = new List<string>() { "字段1", "字段2" };
                // 最终效果示例:where (字段1 = value or 字段2 = value),模糊查询时同理为 like
            }
        }
    };
    return base.GetPageData(options);
}

方式 1:EF

public override PageGridData<当前表> GetPageData(PageDataOptions options)
{
    System.Linq.Expressions.Expression<Func<当前表, bool>> orFilter = null;
    QueryRelativeList = (List<SearchParameters> parameters) =>
    {
        foreach (var item in parameters)
        {
            if (!string.IsNullOrEmpty(item.Value))
            {
                if (orFilter == null && (item.Name == "TranNo" || item.Name == "SellNo"))
                {
                    orFilter = x => false;
                }
                string value = item.Value;
                if (item.Name == "TranNo")
                {
                    orFilter = orFilter.Or(x => x.TranNo.Contains(value));
                    item.Value = null;
                }
                else if (item.Name == "SellNo")
                {
                    orFilter = orFilter.Or(x => x.SellNo == value);
                    item.Value = null;
                }
            }
        }
    };

    QueryRelativeExpression = (IQueryable<当前表> queryable) =>
    {
        if (orFilter != null)
        {
            queryable = queryable.Where(orFilter);
        }
        return queryable;
    };
    return base.GetPageData(options);
}

方式 2:原生SQL

public override PageGridData<当前表> GetPageData(PageDataOptions options)
{
    QueryRelativeList = (List<SearchParameters> parameters) =>
    {
        string sql = null;
        foreach (var item in parameters)
        {
            if (!string.IsNullOrEmpty(item.Value))
            {
                if (sql == null)
                {
                    sql = "where 1=2";
                }
                string value = item.Value;
                item.Value = null;
                if (item.Name == "TranNo")
                {
                    sql += $" or TranNo='{value}'";
                }
                else if (item.Name == "SellNo")
                {
                    sql += $" or SellNo='{value}'";
                }
            }
        }
        if (sql != null)
        {
            QuerySql = "select * from 实际表名 " + sql;
        }
    };
    return base.GetPageData(options);
}
Last Updated 2026/5/12 17:18:25