syncfusion-react-query-builder

Comprehensive guide to implementing Syncfusion React Query Builder component. Use this skill when building advanced filter interfaces, creating complex data query systems, or implementing dynamic rule-based filtering. This skill covers query builder configuration, SQL query conversion, drag-and-drop

By syncfusion · 608 installs

npx skills add syncfusion/react-ui-components-skills --skill syncfusion-react-query-builder

Source repository · Upstream listing

Implementing Syncfusion React Query Builder A comprehensive guide for implementing and customizing the Syncfusion React Query Builder component. The Query Builder is a powerful UI component for creating and managing complex filter conditions, with support for rule based queries, multiple data types, SQL generation, and extensive customization options. Component Overview The Query Builder component provides a graphical interface for creating and editing complex filter rules. It outputs structured JSON that can be converted to SQL, Mongo queries, or custom predicates for filtering data. Key capabilities include: Rule Management: Create, edit, delete, and nest rules and groups Multiple Data Types: Support for string, number, date, boolean, and custom types Operator Support: 16+ built in operators (equal, contains, between, in, etc.) Query Conversion: Convert to SQL, Mongo, or parameterized queries Customization: Custom templates, themes, and styling Accessibility: WCAG compliant with keyboard navigation and screen reader support Advanced Features: Drag and drop, state persistence, cloning, locking Documentation and Navigation Guide Getting Started 📄 Read: [references/getting started.md](references/getting started.md) Installation and package setup Basic component initialization CSS imports and themes Creating your first Query Builder Column definition basics Running the application Columns and Operators 📄 Read: [references/columns and operators.md](references/columns and operators.md) Defining column schema with ColumnsModel Auto generating columns from data sources Configuring labels and field mappings Supported operators by data type Setting step and format properties Column validation configuration Data Binding 📄 Read: [references/data binding.md](references/data binding.md) Binding local data arrays Remote data with DataManager ODataV4Adaptor integration Dynamic data updates Using DataManager with Query Builder Handling data source changes Rules and Filtering 📄 Read: [references/rules and filtering.md](references/rules and filtering.md) Understanding rule structure (RuleModel) Creating rules programmatically with addRules Creating groups with addGroups Deleting rules and groups Managing nested rule hierarchies Drag and drop rule management Show buttons configuration Query Conversion 📄 Read: [references/query conversion.md](references/query conversion.md) Converting rules to SQL with getSqlFromRules Generating Mongo queries with getMongoQuery Creating parameterized SQL queries Named parameter SQL generation Converting predicates for DataManager Importing rules from SQL queries Handling localization in SQL conversion Templates and Customization 📄 Read: [references/templates and customization.md](references/templates and customization.md) Creating custom header templates Custom component injection into templates Styling with CSS classes and cssClass property Theme Studio integration Custom operator definitions Handling actionBegin events for customization Advanced Features 📄 Read: [references/advanced features.md](references/advanced features.md) Display modes (Horizontal and Vertical layouts) Cloning rules and groups with cloneRule/cloneGroup Locking rules and groups for read only access Separate connectors for visual distinction Restricting group operations RTL (Right to Left) support State persistence with enablePersistence Sort direction configuration Summary view display Accessibility and keyboard navigation API Reference 📄 Read: [references/api reference.md](references/api reference.md) Complete properties list with types and defaults All methods with parameters and return types Event handlers and event arguments Model interfaces (RuleModel, ColumnsModel, ShowButtonsModel) Return type definitions and data structures Property usage patterns Quick Start Example Common Patterns Pattern 1: Retrieving Filtered Results as SQL Pattern 2: Programmatically Adding Rules Pattern 3: Converting SQL Back to Rules Pattern 4: Displaying Summary View Key Props Cheat Sheet Prop Type Default Purpose columns ColumnsModel[] Defines available fields and operators rule RuleModel {} Initial filter rules dataSource Object[] \ DataManager [] Data for binding displayMode 'Horizontal' \ 'Vertical' 'Horizontal' Layout orientation allowDragAndDrop boolean false Enable drag drop rule management enablePersistence boolean false Save state to localStorage enableRtl boolean false Right to left layout allowValidation boolean false Validate rule conditions summaryView boolean false Show filtered query summary showButtons ShowButtonsModel defaults Control add/delete button visibility maxGroupCount number 5 Maximum nested group depth readonly boolean false Make component read only Common Use Cases Use Case 1: Advanced Search Filter Create a filter interface for users to build complex search queries with multiple conditions: 1. Define columns for searchable fields 2. Initialize with empty or default rules 3. Set showButtons to enable rule management 4. Retrieve SQL on form submission 5. Execute query on backend Read: [references/rules and filtering.md](references/rules and filtering.md) and [references/query conversion.md](references/query conversion.md) Use Case 2: Data Driven Dashboard Build a dashboard where users filter data across multiple columns: 1. Bind DataManager with remote service 2. Configure columns based on data types 3. Enable drag and drop for better UX 4. Use getPredicate() to filter DataManager 5. Display filtered results dynamically Read: [references/data binding.md](references/data binding.md) and [references/rules and filtering.md](references/rules and filtering.md) Use Case 3: Query Template System Allow users to save and load filter templates: 1. Set enablePersistence={true} for automatic state saving 2. Or manually save getRules() to database 3. Load rules with setRules() when needed 4. Display saved templates in a dropdown Read: [references/advanced features.md](references/advanced features.md) Use Case 4: Report Builder Create a report filter UI with custom templates: 1. Design custom header template for branding 2. Use custom operators for domain specific filtering 3. Enable validation with allowValidation 4. Display summaryView for clarity 5. Generate SQL for report execution Read: [references/templates and customization.md](references/templates and customization.md) and [references/advanced features.md](references/advanced features.md) Next Steps 1. Getting Started: Install the package and create your first Query Builder 2. Define Columns: Configure the fields users can filter on 3. Bind Data: Connect to local or remote data sources 4. Build UI: Add rules and groups with drag and drop support 5. Generate Queries: Convert rules to SQL or other formats 6. Customize: Apply themes, templates, and accessibility features Need help? Check the specific reference files above for detailed examples and implementation patterns.