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
آخر نشاط في المصدر
١١ أغسطس ٢٠٢٦ في ٠٥:٢٨
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٠
التفرعات
٠

خيارات التثبيت

يُحدَّد 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