Skip to main content

syncfusion-javascript-query-builder

How to implement Syncfusion JavaScript QueryBuilder component with comprehensive guidance on columns, data binding, rules management, filtering, templates, drag-drop interactions, import/export, and accessibility. Use this skill when users need help with QueryBuilder setup, rule creation, complex query building, advanced customization, or dynamic filter UI requirements in TypeScript applications.

ソース情報

リポジトリ
syncfusion/javascript-ui-controls-skills
ソースの最終更新活動
2026年8月11日 05:28
検出された SKILL.md の言語
英語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
12 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
syncfusion-javascript-query-builder
description
How to implement Syncfusion JavaScript QueryBuilder component with comprehensive guidance on columns, data binding, rules management, filtering, templates, drag-drop interactions, import/export, and accessibility. Use this skill when users need help with QueryBuilder setup, rule creation, complex query building, advanced customization, or dynamic filter UI requirements in TypeScript applications.
metadata
{"author":"Syncfusion Inc","version":"34.1.29","category":"Forms"}
# Implementing QueryBuilder in TypeScript The QueryBuilder is a powerful Syncfusion component for building dynamic, complex queries with a visual UI. This skill provides comprehensive guidance for implementing, configuring, and customizing the QueryBuilder in TypeScript applications. ## Control Overview **QueryBuilder** is an advanced UI component that enables users to build complex filter conditions without writing code. It supports: - Multiple data types (string, number, date, boolean) - Various operators (equals, contains, between, etc.) - Rule grouping with AND/OR conditions - Nested group hierarchies - Custom templates for UI customization - Drag-drop interactions (rearrange, clone, lock rules) - JSON import/export and SQL generation - RTL support and full keyboard accessibility - WCAG 2.1 AA compliance ## Documentation and Navigation Guide ### Getting Started See also: [references/getting-started.md](references/getting-started.md) - Installation and npm package setup - Syncfusion dependencies configuration - CSS imports and theme setup - Basic QueryBuilder initialization - Column definitions with types - Running your first QueryBuilder application ### Columns and Schema Definition See also: [references/columns-definition.md](references/columns-definition.md) - Column definitions and schema structure - Auto-generation of columns from data - Field mapping and labels - Supported data types (string, number, date, boolean) - Operators for each data type - Step and format properties for numbers/dates - Custom column configuration patterns ### Data Binding See also: [references/data-binding.md](references/data-binding.md) - Local data binding with JavaScript arrays - Remote data binding with DataManager - DataSource assignment patterns - RuleModel structure for predefined queries - Binding with initial rules - Dynamic data updates and refresh - DataManager configuration ### Rules and Groups Management See also: [references/rules-and-groups.md](references/rules-and-groups.md) - Rule model structure (condition, rules, field, operator, value) - Creating single filter rules - Grouping rules with AND/OR logic - Adding and deleting rules programmatically - Adding and deleting groups - Rule validation and constraints - Nested group hierarchies ### Filtering and Search Operations See also: [references/filtering-search.md](references/filtering-search.md) - Filtering conditions creation and deletion - Query execution methods - Custom filter condition patterns - Search functionality within conditions - ShowButtons configuration (rule delete, group insert/delete) - UI-based and programmatic filtering - Event handling for filter changes ### Templates and Customization See also: [references/templates-customization.md](references/templates-customization.md) - Value template customization - Operator template customization - Field template customization - Custom HTML template creation - Template rendering and binding - CSS class customization - Dynamic template rendering patterns ### Drag-Drop and Rule Interaction See also: [references/drag-drop-clone-lock.md](references/drag-drop-clone-lock.md) - Drag and drop functionality for rules - Cloning rules within groups - Locking rules to prevent modification - Separator and connector behavior - Moving rules between groups - Drag-drop event handling - Visual feedback and styling ### Import/Export and Persistence See also: [references/import-export.md](references/import-export.md) - Exporting rules to JSON format - Importing rules from JSON - SQL query generation - JSON serialization patterns - Format conversions (rules to SQL/JSON) - Data persistence strategies - State management ### Accessibility and RTL See also: [references/accessibility-rtl.md](references/accessibility-rtl.md) - WCAG 2.1 AA compliance standards - Keyboard navigation patterns - ARIA attributes and labels - Screen reader support - RTL (Right-to-Left) language support - Focus management and indicators - Localization and internationalization ### Advanced Features and Troubleshooting See also: [references/advanced-features.md](references/advanced-features.md) - Global and local configuration options - Model binding patterns - Advanced validation strategies - Performance optimization techniques - Event handling and callbacks - State persistence patterns - Common issues and troubleshooting - Best practices for complex scenarios ### API Reference See also: [references/api.md](references/api.md) - Complete properties reference with types and defaults - All public methods with parameters and return types - All events with event argument interfaces - Key model interfaces (RuleModel, ColumnsModel, ShowButtonsModel, ValueModel, TemplateColumn, Validation) - Event arg interfaces (ActionEventArgs, ChangeEventArgs, RuleChangeEventArgs, DragEventArgs, DropEventArgs) - SQL/query output interfaces (ParameterizedSql, ParameterizedNamedSql) - Usage examples for initialization, SQL export, rule management, clone/lock, and drag-drop ## Quick Start Example Here's a minimal example to get started with QueryBuilder: ```typescript import { QueryBuilder, ColumnsModel, RuleModel } from '@syncfusion/ej2-querybuilder'; // Define your data const employeeData = [ { EmployeeID: 1, FirstName: 'Nancy', Title: 'Sales Representative', HireDate: '22/07/2001', City: 'Seattle', Country: 'USA' }, { EmployeeID: 2, FirstName: 'Andrew', Title: 'Vice President', HireDate: '21/04/2003', City: 'Tacoma', Country: 'USA' } ]; // Define columns matching your data const columnData: ColumnsModel[] = [ { field: 'EmployeeID', label: 'Employee ID', type: 'number' }, { field: 'FirstName', label: 'First Name', type: 'string' }, { field: 'Title', label: 'Title', type: 'string' }, { field: 'HireDate', label: 'Hire Date', type: 'date', format: 'dd/MM/yyyy' }, { field: 'City', label: 'City', type: 'string' }, { field: 'Country', label: 'Country', type: 'string' } ]; // Optional: Define initial rules const initialRules: RuleModel = { condition: 'and', rules: [ { label: 'Employee ID', field: 'EmployeeID', type: 'number', operator: 'equal', value: 1 }, { label: 'Title', field: 'Title', type: 'string', operator: 'startswith', value: 'Sales' } ] }; // Create QueryBuilder instance const queryBuilder = new QueryBuilder({ width: '100%', dataSource: employeeData, columns: columnData, rule: initialRules }); // Render to DOM queryBuilder.appendTo('#querybuilder'); ``` ## Common Patterns ### Pattern 1: Basic Filter with Single Rule For simple filtering scenarios, use a single rule without groups: ```typescript const rule: RuleModel = { condition: 'and', rules: [{ field: 'FirstName', type: 'string', operator: 'startswith', value: 'A' }] }; ``` ### Pattern 2: AND/OR Logic with Groups For complex filters combining multiple conditions: ```typescript const rule: RuleModel = { condition: 'and', rules: [ { field: 'City', operator: 'equal', value: 'Seattle' }, { condition: 'or', rules: [ { field: 'Title', operator: 'contains', value: 'Sales' }, { field: 'Title', operator: 'contains', value: 'Manager' } ] } ] }; ``` ### Pattern 3: Dynamic Rule Addition Add rules programmatically in response to user actions: ```typescript const newRule = [{ field: 'Country', operator: 'equal', value: 'USA' }]; queryBuilder.addRules(newRule, 'group0'); ``` ### Pattern 4: Export to JSON for Storage Save the current query state for persistence: ```typescript const rules = queryBuilder.getRules(); const jsonQuery = JSON.stringify(rules); // Store in database or local storage ``` ## Key Concepts - **RuleModel:** Represents a single filter condition with field, operator, and value - **Condition:** Logical operator (AND/OR) for combining multiple rules - **GroupModel:** Container for rules with AND/OR conditions - **Operators:** Comparison methods (equal, contains, between, etc.) - **Data Types:** Supported column types (string, number, date, boolean) - **Templates:** Custom UI elements for fields, operators, and values - **State:** Current configuration of rules and groups ## Common Use Cases 1. **Advanced Search Filter** - Let users build complex queries for data search 2. **Report Generation** - Create dynamic filters for report parameters 3. **Data Export** - Filter data before export with visual UI 4. **Log Analysis** - Build complex queries to analyze system logs 5. **Customer Segmentation** - Filter customers based on multiple criteria 6. **Permission Rules** - Define access rules with complex conditions 7. **Notification Rules** - Create dynamic alert conditions 8. **ETL Workflows** - Filter source data before transformation --- **Need help with a specific feature?** Check the reference files above for detailed guidance on columns, data binding, templates, and more!
GitHubで見る