Loading...
Loading...
Compare original and translation side by side
ejs-querybuilderejs-querybuilder@syncfusion/ej2-angular-querybuilder@syncfusion/ej2-angular-querybuilderfieldlabeltypeallowValidationisRequiredminmaxfieldlabeltypeallowValidationisRequiredminmaxJsonAdaptorDataManagergetPredicate()JsonAdaptorDataManagergetPredicate()addRulesdeleteRulesaddGroupsdeleteGroupscloneRulecloneGrouplockRulelockGroupenableSeparateConnectormaxGroupCountallowDragAndDropshowButtonsaddRulesdeleteRulesaddGroupsdeleteGroupscloneRulecloneGrouplockRulelockGroupenableSeparateConnectormaxGroupCountallowDragAndDropshowButtonsrulesetRulessetMongoQuerygetRulesgetMongoQueryrulesetRulessetMongoQuerygetRulesgetMongoQuerycreatewritedestroyNgTemplateruleTemplateactionBeginfieldModeloperatorModelvalueModelcreatewritedestroyNgTemplateruleTemplateactionBeginfieldModeloperatorModelvalueModeldisplayModesummaryViewenableRtlenablePersistencedisplayModesummaryViewenableRtlenablePersistencesortDirectionsortDirectionimport { QueryBuilderModule } from '@syncfusion/ej2-angular-querybuilder';
import { Component } from '@angular/core';
@Component({
imports: [QueryBuilderModule],
standalone: true,
selector: 'app-root',
template: `
<ejs-querybuilder width="70%" [rule]="importRules">
<e-columns>
<e-column field="EmployeeID" label="Employee ID" type="number"></e-column>
<e-column field="FirstName" label="First Name" type="string"></e-column>
<e-column field="Title" label="Title" type="string"></e-column>
<e-column field="HireDate" label="Hire Date" type="date" format="dd/MM/yyyy"></e-column>
<e-column field="Country" label="Country" type="string"></e-column>
</e-columns>
</ejs-querybuilder>
`
})
export class App {
public importRules = {
condition: 'and',
rules: [
{ field: 'EmployeeID', label: 'Employee ID', type: 'number', operator: 'equal', value: 1 },
{ field: 'Country', label: 'Country', type: 'string', operator: 'equal', value: 'USA' }
]
};
}ng add @syncfusion/ej2-angular-querybuilderimport { QueryBuilderModule } from '@syncfusion/ej2-angular-querybuilder';
import { Component } from '@angular/core';
@Component({
imports: [QueryBuilderModule],
standalone: true,
selector: 'app-root',
template: `
<ejs-querybuilder width="70%" [rule]="importRules">
<e-columns>
<e-column field="EmployeeID" label="Employee ID" type="number"></e-column>
<e-column field="FirstName" label="First Name" type="string"></e-column>
<e-column field="Title" label="Title" type="string"></e-column>
<e-column field="HireDate" label="Hire Date" type="date" format="dd/MM/yyyy"></e-column>
<e-column field="Country" label="Country" type="string"></e-column>
</e-columns>
</ejs-querybuilder>
`
})
export class App {
public importRules = {
condition: 'and',
rules: [
{ field: 'EmployeeID', label: 'Employee ID', type: 'number', operator: 'equal', value: 1 },
{ field: 'Country', label: 'Country', type: 'string', operator: 'equal', value: 'USA' }
]
};
}ng add @syncfusion/ej2-angular-querybuilder// In your component
import { QueryBuilderComponent } from '@syncfusion/ej2-angular-querybuilder';
import { ViewChild } from '@angular/core';
@ViewChild('querybuilder') qb!: QueryBuilderComponent;
getSqlQuery(): string {
return this.qb.getSqlFromRules(this.qb.getRules());
}// 在组件中
import { QueryBuilderComponent } from '@syncfusion/ej2-angular-querybuilder';
import { ViewChild } from '@angular/core';
@ViewChild('querybuilder') qb!: QueryBuilderComponent;
getSqlQuery(): string {
return this.qb.getSqlFromRules(this.qb.getRules());
}// After component renders, update rules dynamically
this.qb.setRules({
condition: 'or',
rules: [
{ field: 'City', operator: 'equal', value: 'London' },
{ field: 'Country', operator: 'equal', value: 'UK' }
]
});// 组件渲染后,动态更新规则
this.qb.setRules({
condition: 'or',
rules: [
{ field: 'City', operator: 'equal', value: 'London' },
{ field: 'Country', operator: 'equal', value: 'UK' }
]
});// Add a rule to the root group
this.qb.addRules([{ field: 'Title', operator: 'contains', value: 'Manager' }], 'querybuilder_group0');// 向根组添加规则
this.qb.addRules([{ field: 'Title', operator: 'contains', value: 'Manager' }], 'querybuilder_group0');<ejs-querybuilder [allowDragAndDrop]="true" [showButtons]="showButtons">
</ejs-querybuilder>public showButtons = { ruleDelete: true, groupInsert: true, groupDelete: true, ruleInsert: true, cloneRule: true, cloneGroup: true, lockRule: true, lockGroup: true };<ejs-querybuilder [allowDragAndDrop]="true" [showButtons]="showButtons">
</ejs-querybuilder>public showButtons = { ruleDelete: true, groupInsert: true, groupDelete: true, ruleInsert: true, cloneRule: true, cloneGroup: true, lockRule: true, lockGroup: true };| Property | Type | Purpose |
|---|---|---|
| RuleModel | Initial query rules to render |
| ColumnsModel[] | Column definitions (field, label, type, operators) |
| object[] / DataManager | Data for auto-column generation and predicate |
| boolean | Enable drag-and-drop rule/group reordering |
| boolean | Different AND/OR per rule instead of per group |
| boolean | Show NOT condition toggle on groups |
| boolean | Show human-readable summary of current query |
| boolean | Persist rules to localStorage across refreshes |
| boolean | Right-to-left layout for RTL languages |
| string | |
| number | Max number of nested groups (default: 5) |
| string | Sort field dropdown: |
| boolean | Enable field/operator/value validation |
| ShowButtons | Control visibility of action buttons |
| 属性 | 类型 | 用途 |
|---|---|---|
| RuleModel | 渲染初始查询规则 |
| ColumnsModel[] | 列定义(字段、标签、类型、操作符) |
| object[] / DataManager | 用于自动列生成和谓词的数据 |
| boolean | 启用规则/组拖拽重排 |
| boolean | 为每个规则设置独立的AND/OR(而非按组设置) |
| boolean | 在规则组上显示NOT条件切换按钮 |
| boolean | 显示当前查询的易读性摘要 |
| boolean | 将规则持久化到localStorage,刷新后保留 |
| boolean | 为RTL语言启用从右到左布局 |
| string | |
| number | 最大嵌套组数量(默认:5) |
| string | 字段下拉框排序: |
| boolean | 启用字段/操作符/值验证 |
| ShowButtons | 控制操作按钮的可见性 |
| Method | Purpose |
|---|---|
| Get current rules as JSON RuleModel |
| Set rules programmatically at runtime |
| Export rules to inline SQL string |
| Import inline SQL string into Query Builder |
| Export rules to MongoDB query string |
| Import MongoDB query string |
| Add rules to a specific group |
| Remove rules by ID |
| Add sub-groups to a group |
| Remove groups by ID |
| Clone a rule adjacent to the original |
| Clone a group with all its rules |
| Make a rule read-only |
| Make a group and its contents read-only |
| Trigger validation on all fields |
| 方法 | 用途 |
|---|---|
| 获取当前规则的JSON格式RuleModel |
| 运行时以编程方式设置规则 |
| 将规则导出为内联SQL字符串 |
| 将内联SQL字符串导入到查询构建器 |
| 将规则导出为MongoDB查询字符串 |
| 导入MongoDB查询字符串 |
| 向指定组添加规则 |
| 通过ID删除规则 |
| 向指定组添加子组 |
| 通过ID删除组 |
| 在原规则旁克隆规则 |
| 克隆包含所有规则的组 |
| 将规则设为只读 |
| 将组及其内容设为只读 |
| 触发所有字段的验证 |
setRulessetRules