用途:在 ASP.NET Core 应用中通过 TagHelper 语法实现可视化查询/筛选条件构建器,让用户以规则和分组方式定义条件,使用 AND/OR 连接,并可导出为 JSON、SQL 或 MongoDB 查询。
主要能力:从 DataSource 自动生成列;标签、字段映射、数据类型、运算符、数值步进、日期/数字格式与校验(isRequired、min、max);列级自定义输入模板;本地数据(JSON 数组、DataManager)与远程数据(OData、ODataV4、WebAPI、UrlAdaptor)绑定;通过 getPredicate 过滤数据;借助 ruleChange 事件与 Grid 集成;JSON/SQL(Inline、Parameter、Named Parameter)/MongoDB 的导入导出;规则管理(addRules、deleteRules、addGroups、deleteGroups、clone、lock);EnableSeparateConnector、EnableNotCondition;表头模板、水平/垂直显示、只读摘要视图、模型绑定与 CSS 样式定制;拖拽、MaxGroupCount、SortDirection、EnablePersistence、EnableRtl、ReadOnly、宽高、AutoSelectField、MatchCase 及本地化。
使用方式:安装 NuGet 包并配置 TagHelper,引用 CDN 样式与脚本;在 _ViewImports.cshtml 加入 @addTagHelper *, Syncfusion.EJ2;使用 ejs-querybuilder 与 e-querybuilder-columns/e-querybuilder-column 定义列。示例:<ejs-querybuilder id="querybuilder" width="70%"><e-querybuilder-columns><e-querybuilder-column field="EmployeeID" label="Employee ID" type="number"></e-querybuilder-column></e-querybuilder-columns></ejs-querybuilder>。导出可用 queryBuilder.getRules()、getSqlFromRules()、getParameterizedSql();Grid 集成在 ruleChange 中设置 gridObj.query = qryBldrObj.getDataManagerQuery(qryBldrObj.getRules()) 后刷新。
适用场景:数据表格筛选面板、条件保存/恢复、SQL WHERE 构建、MongoDB 过滤、只读筛选展示、移动端布局与本地化界面。
限制与安全:组件依赖从官方 CDN(https://cdn.syncfusion.com/ej2/*/dist/ej2.min.js)运行时执行外部 JavaScript,属必需的可信依赖;建议仅用 HTTPS、启用 SRI、配置 CSP 白名单、固定具体版本而非 latest,并定期更新 NuGet 包与 CDN 版本、在预发布环境测试。相关收费、价格与平台支持信息暂未提供。